From 932ddbf8e9a0085a6400aad64dff1a83b3bda533 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Wed, 4 Jan 2023 18:01:28 -0500 Subject: [PATCH 01/25] attach connector to its source --- samtranslator/translator/translator.py | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index bddd6cbe3..ccb1d6309 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -123,6 +123,9 @@ def translate( self.sam_parser.parse(sam_template=sam_template, parameter_values=parameter_values, sam_plugins=sam_plugins) + updated_resources = add_embedded_connectors(sam_template=sam_template) + sam_template["Resources"].update(updated_resources) + template = copy.deepcopy(sam_template) macro_resolver = ResourceTypeResolver(sam_resources) intrinsics_resolver = IntrinsicsResolver(parameter_values) @@ -268,6 +271,57 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors +def add_embedded_connectors(sam_template: Dict[str, Any]) -> Any: + resources = sam_template.get("Resources", {}) + connectors_list = [] + + # Loop through the resources in the template and see if any connectors have been attached + for source_logicalId, resource in resources.items(): + if "Connectors" in resource: + if not isinstance(resource["Connectors"], dict): + raise InvalidDocumentException([InvalidTemplateException("'Connectors' must be a dict")]) + + # Go through each of the connectors that have been attached and create a Serverless Connector resource + for connector_logicalId, connector_dict in resource["Connectors"].items(): + if not isinstance(connector_dict, dict): + raise InvalidResourceException(source_logicalId, "Invalid 'Connectors' type. Must be a dict.") + + data = get_generated_connector(source_logicalId, connector_logicalId, connector_dict) + # add to the list of generated connectors + connectors_list.append(data) + + # delete connectors key, so it doesn't show up in the transformed template + del resource["Connectors"] + + # go through the list of generated connectors and add it to resources dict + for connector_logicalId, connector_dict in connectors_list: + if connector_logicalId in resources: + raise InvalidResourceException( + connector_logicalId, + f"A resource with the id {connector_logicalId} already exists in the " + f"resource. Please use a different id for that resource.", + ) + resources[connector_logicalId] = connector_dict + + return resources + + +def get_generated_connector( + source_logicalId: str, connector_logicalId: str, connector_dict: Dict[str, Any] +) -> Tuple[str, Dict[str, Any]]: + connector = connector_dict + connector["Type"] = "AWS::Serverless::Connector" + if isinstance(connector["Properties"], dict): + connector["Properties"]["Source"] = {"Id": source_logicalId} + + # TODO: Fix the bug that doesn't allow id to be combined with any other ResourceReference property + if "SourceReference" in connector["Properties"]: + connector["Properties"]["Source"].update(connector["Properties"]["SourceReference"]) + del connector["Properties"]["SourceReference"] + + return connector_logicalId, connector + + def prepare_plugins(plugins: List[Any], parameters: Optional[Dict[str, Any]] = None) -> SamPlugins: """ Creates & returns a plugins object with the given list of plugins installed. In addition to the given plugins, From c76f6cd4ce13d58c6fbba26f39ac8f310c825ed2 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Fri, 6 Jan 2023 18:16:59 -0500 Subject: [PATCH 02/25] error msg change --- samtranslator/translator/translator.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 6fe1aa601..fe96e35c2 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -272,6 +272,10 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors +def make_error(msg: str) -> Exception: + return InvalidDocumentException([InvalidTemplateException(msg)]) + + def add_embedded_connectors(sam_template: Dict[str, Any]) -> Any: resources = sam_template.get("Resources", {}) connectors_list = [] @@ -280,12 +284,12 @@ def add_embedded_connectors(sam_template: Dict[str, Any]) -> Any: for source_logicalId, resource in resources.items(): if "Connectors" in resource: if not isinstance(resource["Connectors"], dict): - raise InvalidDocumentException([InvalidTemplateException("'Connectors' must be a dict")]) + raise make_error("'Connectors' must be a dict") # Go through each of the connectors that have been attached and create a Serverless Connector resource for connector_logicalId, connector_dict in resource["Connectors"].items(): if not isinstance(connector_dict, dict): - raise InvalidResourceException(source_logicalId, "Invalid 'Connectors' type. Must be a dict.") + raise make_error("Invalid 'Connectors' type. Must be a dict.") data = get_generated_connector(source_logicalId, connector_logicalId, connector_dict) # add to the list of generated connectors @@ -297,8 +301,7 @@ def add_embedded_connectors(sam_template: Dict[str, Any]) -> Any: # go through the list of generated connectors and add it to resources dict for connector_logicalId, connector_dict in connectors_list: if connector_logicalId in resources: - raise InvalidResourceException( - connector_logicalId, + raise make_error( f"A resource with the id {connector_logicalId} already exists in the " f"resource. Please use a different id for that resource.", ) @@ -312,11 +315,15 @@ def get_generated_connector( ) -> Tuple[str, Dict[str, Any]]: connector = connector_dict connector["Type"] = "AWS::Serverless::Connector" + + # No need to raise an error for this instance as the error will be caught by the parser if isinstance(connector["Properties"], dict): connector["Properties"]["Source"] = {"Id": source_logicalId} - # TODO: Fix the bug that doesn't allow id to be combined with any other ResourceReference property if "SourceReference" in connector["Properties"]: + if not isinstance(connector["Properties"]["SourceReference"], dict): + raise make_error(f"The SourceReference property for {connector_logicalId} must be a dict") + connector["Properties"]["Source"].update(connector["Properties"]["SourceReference"]) del connector["Properties"]["SourceReference"] From 672501c73c23b4a644fa11b311a8739222cade28 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Tue, 10 Jan 2023 13:47:23 -0800 Subject: [PATCH 03/25] address feedback --- samtranslator/translator/translator.py | 76 ++++++++++++++++---------- 1 file changed, 46 insertions(+), 30 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index fe96e35c2..31f796ebe 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -32,6 +32,7 @@ from samtranslator.sdk.parameter import SamParameterValues from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.model.eventsources.push import Api +from samtranslator.model.sam_resources import SamConnector class Translator: @@ -124,8 +125,7 @@ def translate( self.sam_parser.parse(sam_template=sam_template, parameter_values=parameter_values, sam_plugins=sam_plugins) - updated_resources = add_embedded_connectors(sam_template=sam_template) - sam_template["Resources"].update(updated_resources) + add_embedded_connectors(sam_template=sam_template) template = copy.deepcopy(sam_template) macro_resolver = ResourceTypeResolver(sam_resources) @@ -272,62 +272,78 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors -def make_error(msg: str) -> Exception: - return InvalidDocumentException([InvalidTemplateException(msg)]) +def raise_error(msg: str) -> None: + raise InvalidDocumentException([InvalidTemplateException(msg)]) -def add_embedded_connectors(sam_template: Dict[str, Any]) -> Any: +def add_embedded_connectors(sam_template: Dict[str, Any]) -> None: + """ + Loops through the SAM Template resources to find any connectors that have been attached to the resources. + Adds those attached connectors as Connector resources to the list of resources + + :param dict sam_template: SAM template + """ resources = sam_template.get("Resources", {}) - connectors_list = [] + connectors = {} # Loop through the resources in the template and see if any connectors have been attached for source_logicalId, resource in resources.items(): if "Connectors" in resource: if not isinstance(resource["Connectors"], dict): - raise make_error("'Connectors' must be a dict") + raise_error("'Connectors' must be a dict") # Go through each of the connectors that have been attached and create a Serverless Connector resource for connector_logicalId, connector_dict in resource["Connectors"].items(): if not isinstance(connector_dict, dict): - raise make_error("Invalid 'Connectors' type. Must be a dict.") + raise_error(f"Invalid resource type. '{connector_logicalId}' be a dict.") + + # Make sure there are no other embedded connectors with the same logical id + if connector_logicalId in connectors: + raise_error( + f"Another connector with the logical id {connector_logicalId} exists in the " + f"template. Please rename either of them." + ) - data = get_generated_connector(source_logicalId, connector_logicalId, connector_dict) - # add to the list of generated connectors - connectors_list.append(data) + # mutates the connector_dict to make it a connector resource + get_generated_connector(source_logicalId, connector_logicalId, connector_dict) + connectors[connector_logicalId] = connector_dict # delete connectors key, so it doesn't show up in the transformed template del resource["Connectors"] # go through the list of generated connectors and add it to resources dict - for connector_logicalId, connector_dict in connectors_list: + for connector_logicalId, connector_dict in connectors.items(): if connector_logicalId in resources: - raise make_error( - f"A resource with the id {connector_logicalId} already exists in the " - f"resource. Please use a different id for that resource.", + raise_error( + f"The logical ID of the generated connector {connector_logicalId} has a conflict with " + f"{connector_logicalId} of type '{resources[connector_logicalId]['Type']}', " + f"please rename either of them " ) resources[connector_logicalId] = connector_dict - return resources +def get_generated_connector(source_logical_id: str, connector_logicalId: str, connector: Dict[str, Any]) -> None: + """ + Adds the type, source id and any ResourceReference properties to the connector -def get_generated_connector( - source_logicalId: str, connector_logicalId: str, connector_dict: Dict[str, Any] -) -> Tuple[str, Dict[str, Any]]: - connector = connector_dict - connector["Type"] = "AWS::Serverless::Connector" + :param str source_logical_id: Logical id of the resource the connector is attached to + :param str connector_logicalId: Logical id of the connector + :param dict connector: the properties of the connector including the Destination, Permissions and SourceReference [Optional] + """ + connector_class = SamConnector(logical_id="SamConnector") + connector["Type"] = connector_class.resource_type + properties = connector["Properties"] # No need to raise an error for this instance as the error will be caught by the parser - if isinstance(connector["Properties"], dict): - connector["Properties"]["Source"] = {"Id": source_logicalId} - - if "SourceReference" in connector["Properties"]: - if not isinstance(connector["Properties"]["SourceReference"], dict): - raise make_error(f"The SourceReference property for {connector_logicalId} must be a dict") + if isinstance(properties, dict): + properties["Source"] = {"Id": source_logical_id} - connector["Properties"]["Source"].update(connector["Properties"]["SourceReference"]) - del connector["Properties"]["SourceReference"] + if "SourceReference" in properties: + if not isinstance(properties["SourceReference"], dict): + raise_error(f"The 'SourceReference' property for resource '{connector_logicalId}' must be a dict") - return connector_logicalId, connector + properties["Source"].update(properties["SourceReference"]) + del properties["SourceReference"] def prepare_plugins(plugins: List[Any], parameters: Optional[Dict[str, Any]] = None) -> SamPlugins: From 3a0abe97af31de8984d2ea7ba6a98e36f9cfc768 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Tue, 10 Jan 2023 14:01:28 -0800 Subject: [PATCH 04/25] address feedback --- samtranslator/translator/translator.py | 30 +++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 31f796ebe..8491620ed 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -287,47 +287,47 @@ def add_embedded_connectors(sam_template: Dict[str, Any]) -> None: connectors = {} # Loop through the resources in the template and see if any connectors have been attached - for source_logicalId, resource in resources.items(): + for source_logical_id, resource in resources.items(): if "Connectors" in resource: if not isinstance(resource["Connectors"], dict): raise_error("'Connectors' must be a dict") # Go through each of the connectors that have been attached and create a Serverless Connector resource - for connector_logicalId, connector_dict in resource["Connectors"].items(): + for connector_logical_id, connector_dict in resource["Connectors"].items(): if not isinstance(connector_dict, dict): - raise_error(f"Invalid resource type. '{connector_logicalId}' be a dict.") + raise_error(f"Invalid resource type. '{connector_logical_id}' be a dict.") # Make sure there are no other embedded connectors with the same logical id - if connector_logicalId in connectors: + if connector_logical_id in connectors: raise_error( - f"Another connector with the logical id {connector_logicalId} exists in the " + f"Another connector with the logical id {connector_logical_id} exists in the " f"template. Please rename either of them." ) # mutates the connector_dict to make it a connector resource - get_generated_connector(source_logicalId, connector_logicalId, connector_dict) - connectors[connector_logicalId] = connector_dict + get_generated_connector(source_logical_id, connector_logical_id, connector_dict) + connectors[connector_logical_id] = connector_dict # delete connectors key, so it doesn't show up in the transformed template del resource["Connectors"] # go through the list of generated connectors and add it to resources dict - for connector_logicalId, connector_dict in connectors.items(): - if connector_logicalId in resources: + for connector_logical_id, connector_dict in connectors.items(): + if connector_logical_id in resources: raise_error( - f"The logical ID of the generated connector {connector_logicalId} has a conflict with " - f"{connector_logicalId} of type '{resources[connector_logicalId]['Type']}', " + f"The logical ID of the generated connector {connector_logical_id} has a conflict with " + f"{connector_logical_id} of type '{resources[connector_logical_id]['Type']}', " f"please rename either of them " ) - resources[connector_logicalId] = connector_dict + resources[connector_logical_id] = connector_dict -def get_generated_connector(source_logical_id: str, connector_logicalId: str, connector: Dict[str, Any]) -> None: +def get_generated_connector(source_logical_id: str, connector_logical_id: str, connector: Dict[str, Any]) -> None: """ Adds the type, source id and any ResourceReference properties to the connector :param str source_logical_id: Logical id of the resource the connector is attached to - :param str connector_logicalId: Logical id of the connector + :param str connector_logical_id: Logical id of the connector :param dict connector: the properties of the connector including the Destination, Permissions and SourceReference [Optional] """ connector_class = SamConnector(logical_id="SamConnector") @@ -340,7 +340,7 @@ def get_generated_connector(source_logical_id: str, connector_logicalId: str, co if "SourceReference" in properties: if not isinstance(properties["SourceReference"], dict): - raise_error(f"The 'SourceReference' property for resource '{connector_logicalId}' must be a dict") + raise_error(f"The 'SourceReference' property for resource '{connector_logical_id}' must be a dict") properties["Source"].update(properties["SourceReference"]) del properties["SourceReference"] From a4746b9f88d535dace74249bb281bb35cb5c61e9 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Tue, 17 Jan 2023 15:55:25 -0800 Subject: [PATCH 05/25] fix error handling --- samtranslator/translator/translator.py | 86 ++++++++++++++------------ 1 file changed, 47 insertions(+), 39 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 8491620ed..66f2c5d79 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -15,6 +15,7 @@ from samtranslator.model.exceptions import ( InvalidDocumentException, InvalidResourceException, + InvalidResourcePropertyTypeException, DuplicateLogicalIdException, InvalidEventException, InvalidTemplateException, @@ -33,6 +34,7 @@ from samtranslator.translator.arn_generator import ArnGenerator from samtranslator.model.eventsources.push import Api from samtranslator.model.sam_resources import SamConnector +from samtranslator.validator.value_validator import sam_expect class Translator: @@ -125,7 +127,8 @@ def translate( self.sam_parser.parse(sam_template=sam_template, parameter_values=parameter_values, sam_plugins=sam_plugins) - add_embedded_connectors(sam_template=sam_template) + document_errors = [] + add_embedded_connectors(sam_template=sam_template, document_errors=document_errors) template = copy.deepcopy(sam_template) macro_resolver = ResourceTypeResolver(sam_resources) @@ -141,7 +144,6 @@ def translate( deployment_preference_collection = DeploymentPreferenceCollection() supported_resource_refs = SupportedResourceReferences() shared_api_usage_plan = SharedApiUsagePlan() - document_errors = [] changed_logical_ids = {} route53_record_set_groups: Dict[Any, Any] = {} for logical_id, resource_dict in self._get_resources_to_iterate(sam_template, macro_resolver): @@ -272,11 +274,7 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors -def raise_error(msg: str) -> None: - raise InvalidDocumentException([InvalidTemplateException(msg)]) - - -def add_embedded_connectors(sam_template: Dict[str, Any]) -> None: +def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[Exception]) -> None: """ Loops through the SAM Template resources to find any connectors that have been attached to the resources. Adds those attached connectors as Connector resources to the list of resources @@ -289,40 +287,49 @@ def add_embedded_connectors(sam_template: Dict[str, Any]) -> None: # Loop through the resources in the template and see if any connectors have been attached for source_logical_id, resource in resources.items(): if "Connectors" in resource: - if not isinstance(resource["Connectors"], dict): - raise_error("'Connectors' must be a dict") - - # Go through each of the connectors that have been attached and create a Serverless Connector resource - for connector_logical_id, connector_dict in resource["Connectors"].items(): - if not isinstance(connector_dict, dict): - raise_error(f"Invalid resource type. '{connector_logical_id}' be a dict.") - - # Make sure there are no other embedded connectors with the same logical id - if connector_logical_id in connectors: - raise_error( - f"Another connector with the logical id {connector_logical_id} exists in the " - f"template. Please rename either of them." - ) + try: + sam_expect( + resource["Connectors"], source_logical_id, "Connectors", is_resource_attribute=True + ).to_be_a_map() + + # Go through each of the connectors that have been attached and create a Serverless Connector resource + for connector_logical_id, connector_dict in resource["Connectors"].items(): - # mutates the connector_dict to make it a connector resource - get_generated_connector(source_logical_id, connector_logical_id, connector_dict) - connectors[connector_logical_id] = connector_dict + # can't use sam_expect since this is neither a property nor a resource attribute + if not isinstance(connector_dict, dict): + raise InvalidResourceException(connector_logical_id, f"{connector_logical_id} should be a map.") - # delete connectors key, so it doesn't show up in the transformed template - del resource["Connectors"] + # mutates the connector_dict to make it a connector resource + get_generated_connector(source_logical_id, connector_logical_id, connector_dict, document_errors) + + # Make sure there are no other embedded connectors with the same logical id + if connector_logical_id in connectors: + raise DuplicateLogicalIdException( + connector_logical_id, connector_logical_id, connector_dict["Type"] + ) + + connectors[connector_logical_id] = connector_dict + + # delete connectors key, so it doesn't show up in the transformed template + del resource["Connectors"] + except (InvalidResourceException, DuplicateLogicalIdException) as e: + document_errors.append(e) # go through the list of generated connectors and add it to resources dict for connector_logical_id, connector_dict in connectors.items(): if connector_logical_id in resources: - raise_error( - f"The logical ID of the generated connector {connector_logical_id} has a conflict with " - f"{connector_logical_id} of type '{resources[connector_logical_id]['Type']}', " - f"please rename either of them " + document_errors.append( + DuplicateLogicalIdException( + connector_logical_id, connector_logical_id, resources[connector_logical_id]["Type"] + ) ) - resources[connector_logical_id] = connector_dict + else: + resources[connector_logical_id] = connector_dict -def get_generated_connector(source_logical_id: str, connector_logical_id: str, connector: Dict[str, Any]) -> None: +def get_generated_connector( + source_logical_id: str, connector_logical_id: str, connector: Dict[str, Any], document_errors: List[Exception] +) -> None: """ Adds the type, source id and any ResourceReference properties to the connector @@ -332,18 +339,19 @@ def get_generated_connector(source_logical_id: str, connector_logical_id: str, c """ connector_class = SamConnector(logical_id="SamConnector") connector["Type"] = connector_class.resource_type - properties = connector["Properties"] # No need to raise an error for this instance as the error will be caught by the parser - if isinstance(properties, dict): + if "Properties" in connector and isinstance(connector["Properties"], dict): + properties = connector["Properties"] properties["Source"] = {"Id": source_logical_id} - if "SourceReference" in properties: - if not isinstance(properties["SourceReference"], dict): - raise_error(f"The 'SourceReference' property for resource '{connector_logical_id}' must be a dict") + try: + sam_expect(properties["SourceReference"], connector_logical_id, "SourceReference").to_be_a_map() - properties["Source"].update(properties["SourceReference"]) - del properties["SourceReference"] + properties["Source"].update(properties["SourceReference"]) + del properties["SourceReference"] + except InvalidResourcePropertyTypeException as e: + document_errors.append(e) def prepare_plugins(plugins: List[Any], parameters: Optional[Dict[str, Any]] = None) -> SamPlugins: From 3b9afa2ad4ccd6d3fc0c6a92b1a6a6cbd42d76fa Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Tue, 17 Jan 2023 16:06:04 -0800 Subject: [PATCH 06/25] unit tests --- .../embedded_connectors_api_to_function.json | 268 ++++++++++++++++++ .../embedded_connectors_api_to_function.json | 268 ++++++++++++++++++ .../embedded_connectors_api_to_function.json | 268 ++++++++++++++++++ 3 files changed, 804 insertions(+) create mode 100644 tests/translator/output/aws-cn/embedded_connectors_api_to_function.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_api_to_function.json create mode 100644 tests/translator/output/embedded_connectors_api_to_function.json diff --git a/tests/translator/output/aws-cn/embedded_connectors_api_to_function.json b/tests/translator/output/aws-cn/embedded_connectors_api_to_function.json new file mode 100644 index 000000000..3e1aee072 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_api_to_function.json @@ -0,0 +1,268 @@ +{ + "Resources": { + "MyApiGateway": { + "Properties": { + "Description": "A test API", + "Name": "MyRestAPI" + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiGatewayRootMethod": { + "Properties": { + "AuthorizationType": "NONE", + "HttpMethod": "POST", + "Integration": { + "Type": "MOCK" + }, + "ResourceId": { + "Fn::GetAtt": [ + "MyApiGateway", + "RootResourceId" + ] + }, + "RestApiId": { + "Ref": "MyApiGateway" + } + }, + "Type": "AWS::ApiGateway::Method" + }, + "MyApiGatewayV2": { + "Properties": { + "Name": "MyApi", + "ProtocolType": "WEBSOCKET" + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyConnectorApiV2ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorApiV2ToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::ApiGatewayV2::Api" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyServerlessFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyApiGatewayV2" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorApigwToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorApigwToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::HttpApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyServerlessFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyHttpApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessHttpApiToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::Serverless::HttpApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyHttpApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyHttpApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": {}, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyHttpApiProdStage": { + "Properties": { + "ApiId": { + "Ref": "MyHttpApi" + }, + "AutoDeploy": true, + "StageName": "Prod", + "Tags": { + "httpapi:createdBy": "SAM" + } + }, + "Type": "AWS::ApiGatewayV2::Stage" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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/embedded_connectors_api_to_function.json b/tests/translator/output/aws-us-gov/embedded_connectors_api_to_function.json new file mode 100644 index 000000000..8d4726a98 --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_api_to_function.json @@ -0,0 +1,268 @@ +{ + "Resources": { + "MyApiGateway": { + "Properties": { + "Description": "A test API", + "Name": "MyRestAPI" + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiGatewayRootMethod": { + "Properties": { + "AuthorizationType": "NONE", + "HttpMethod": "POST", + "Integration": { + "Type": "MOCK" + }, + "ResourceId": { + "Fn::GetAtt": [ + "MyApiGateway", + "RootResourceId" + ] + }, + "RestApiId": { + "Ref": "MyApiGateway" + } + }, + "Type": "AWS::ApiGateway::Method" + }, + "MyApiGatewayV2": { + "Properties": { + "Name": "MyApi", + "ProtocolType": "WEBSOCKET" + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyConnectorApiV2ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorApiV2ToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::ApiGatewayV2::Api" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyServerlessFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyApiGatewayV2" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorApigwToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorApigwToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::HttpApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyServerlessFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyHttpApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessHttpApiToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::Serverless::HttpApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyHttpApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyHttpApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": {}, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyHttpApiProdStage": { + "Properties": { + "ApiId": { + "Ref": "MyHttpApi" + }, + "AutoDeploy": true, + "StageName": "Prod", + "Tags": { + "httpapi:createdBy": "SAM" + } + }, + "Type": "AWS::ApiGatewayV2::Stage" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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/embedded_connectors_api_to_function.json b/tests/translator/output/embedded_connectors_api_to_function.json new file mode 100644 index 000000000..f7dc27e03 --- /dev/null +++ b/tests/translator/output/embedded_connectors_api_to_function.json @@ -0,0 +1,268 @@ +{ + "Resources": { + "MyApiGateway": { + "Properties": { + "Description": "A test API", + "Name": "MyRestAPI" + }, + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiGatewayRootMethod": { + "Properties": { + "AuthorizationType": "NONE", + "HttpMethod": "POST", + "Integration": { + "Type": "MOCK" + }, + "ResourceId": { + "Fn::GetAtt": [ + "MyApiGateway", + "RootResourceId" + ] + }, + "RestApiId": { + "Ref": "MyApiGateway" + } + }, + "Type": "AWS::ApiGateway::Method" + }, + "MyApiGatewayV2": { + "Properties": { + "Name": "MyApi", + "ProtocolType": "WEBSOCKET" + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyConnectorApiV2ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorApiV2ToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::ApiGatewayV2::Api" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyServerlessFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyApiGatewayV2" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorApigwToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorApigwToLambda": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::HttpApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyServerlessFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyHttpApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorServerlessHttpApiToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::Serverless::HttpApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyHttpApi" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyHttpApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": {}, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyHttpApiProdStage": { + "Properties": { + "ApiId": { + "Ref": "MyHttpApi" + }, + "AutoDeploy": true, + "StageName": "Prod", + "Tags": { + "httpapi:createdBy": "SAM" + } + }, + "Type": "AWS::ApiGatewayV2::Stage" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + }, + "ManagedPolicyArns": [ + { + "Fn::Sub": "arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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 753afd387af2e22459767f52753bf1f3144db215 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Tue, 17 Jan 2023 16:06:17 -0800 Subject: [PATCH 07/25] unit tests --- samtranslator/translator/translator.py | 2 +- .../embedded_connectors_api_to_function.yaml | 83 ++ .../embedded_connectors_function_to.yaml | 124 +++ .../embedded_connectors_hardcoded_props.yaml | 67 ++ .../input/embedded_connectors_rule_to.yaml | 86 ++ .../input/embedded_connectors_sfn_to.yaml | 56 ++ .../input/embedded_connectors_sns_to.yaml | 27 + ...embedded_connectors_table_to_function.yaml | 61 ++ .../embedded_connectors_function_to.json | 878 ++++++++++++++++++ .../embedded_connectors_hardcoded_props.json | 217 +++++ .../aws-cn/embedded_connectors_rule_to.json | 308 ++++++ .../aws-cn/embedded_connectors_sfn_to.json | 399 ++++++++ .../aws-cn/embedded_connectors_sns_to.json | 137 +++ ...embedded_connectors_table_to_function.json | 218 +++++ .../embedded_connectors_function_to.json | 878 ++++++++++++++++++ .../embedded_connectors_hardcoded_props.json | 217 +++++ .../embedded_connectors_rule_to.json | 308 ++++++ .../embedded_connectors_sfn_to.json | 399 ++++++++ .../embedded_connectors_sns_to.json | 137 +++ ...embedded_connectors_table_to_function.json | 218 +++++ .../embedded_connectors_function_to.json | 878 ++++++++++++++++++ .../embedded_connectors_hardcoded_props.json | 217 +++++ .../output/embedded_connectors_rule_to.json | 308 ++++++ .../output/embedded_connectors_sfn_to.json | 399 ++++++++ .../output/embedded_connectors_sns_to.json | 137 +++ ...embedded_connectors_table_to_function.json | 218 +++++ 26 files changed, 6976 insertions(+), 1 deletion(-) create mode 100644 tests/translator/input/embedded_connectors_api_to_function.yaml create mode 100644 tests/translator/input/embedded_connectors_function_to.yaml create mode 100644 tests/translator/input/embedded_connectors_hardcoded_props.yaml create mode 100644 tests/translator/input/embedded_connectors_rule_to.yaml create mode 100644 tests/translator/input/embedded_connectors_sfn_to.yaml create mode 100644 tests/translator/input/embedded_connectors_sns_to.yaml create mode 100644 tests/translator/input/embedded_connectors_table_to_function.yaml create mode 100644 tests/translator/output/aws-cn/embedded_connectors_function_to.json create mode 100644 tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json create mode 100644 tests/translator/output/aws-cn/embedded_connectors_rule_to.json create mode 100644 tests/translator/output/aws-cn/embedded_connectors_sfn_to.json create mode 100644 tests/translator/output/aws-cn/embedded_connectors_sns_to.json create mode 100644 tests/translator/output/aws-cn/embedded_connectors_table_to_function.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_function_to.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json create mode 100644 tests/translator/output/embedded_connectors_function_to.json create mode 100644 tests/translator/output/embedded_connectors_hardcoded_props.json create mode 100644 tests/translator/output/embedded_connectors_rule_to.json create mode 100644 tests/translator/output/embedded_connectors_sfn_to.json create mode 100644 tests/translator/output/embedded_connectors_sns_to.json create mode 100644 tests/translator/output/embedded_connectors_table_to_function.json diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 66f2c5d79..21b230caa 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -127,7 +127,7 @@ def translate( self.sam_parser.parse(sam_template=sam_template, parameter_values=parameter_values, sam_plugins=sam_plugins) - document_errors = [] + document_errors: List[Exception] = [] add_embedded_connectors(sam_template=sam_template, document_errors=document_errors) template = copy.deepcopy(sam_template) diff --git a/tests/translator/input/embedded_connectors_api_to_function.yaml b/tests/translator/input/embedded_connectors_api_to_function.yaml new file mode 100644 index 000000000..331b8d47f --- /dev/null +++ b/tests/translator/input/embedded_connectors_api_to_function.yaml @@ -0,0 +1,83 @@ +Resources: + MyHttpApi: + Type: AWS::Serverless::HttpApi + Connectors: + MyConnectorServerlessHttpApiToLambda: + Properties: + Destination: + Id: MyFunction + Permissions: + - Write + MyConnectorApigwToLambda: + Properties: + Destination: + Id: MyServerlessFunction + Permissions: + - Write + Properties: + StageName: Prod + + MyApiGateway: + Type: AWS::ApiGateway::RestApi + Properties: + Description: A test API + Name: MyRestAPI + + MyApiGatewayRootMethod: + Type: AWS::ApiGateway::Method + Properties: + AuthorizationType: NONE + HttpMethod: POST + Integration: + Type: MOCK + ResourceId: !GetAtt MyApiGateway.RootResourceId + RestApiId: !Ref MyApiGateway + + MyApiGatewayV2: + Type: AWS::ApiGatewayV2::Api + Connectors: + MyConnectorApiV2ToLambda: + Properties: + Destination: + Id: MyServerlessFunction + Permissions: + - Write + Properties: + Name: MyApi + ProtocolType: WEBSOCKET + + MyServerlessFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; + + MyRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: lambda.amazonaws.com + ManagedPolicyArns: + - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + + MyFunction: + Type: AWS::Lambda::Function + Properties: + Role: !GetAtt MyRole.Arn + Runtime: nodejs14.x + Handler: index.handler + Code: + ZipFile: |- + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; diff --git a/tests/translator/input/embedded_connectors_function_to.yaml b/tests/translator/input/embedded_connectors_function_to.yaml new file mode 100644 index 000000000..70a1ed39b --- /dev/null +++ b/tests/translator/input/embedded_connectors_function_to.yaml @@ -0,0 +1,124 @@ +Resources: + MyServerlessFunction: + Type: AWS::Serverless::Function + Connectors: + BucketConnector: + Properties: + Destination: + Id: MyBucket + Permissions: + - Read + - Write + SQSConnector: + Properties: + Destination: + Id: MyQueue + Permissions: + - Read + - Write + TableConnector: + Properties: + Destination: + Id: MyTable + Permissions: + - Read + - Write + TableConnectorWithTableArn: + Properties: + Destination: + Type: AWS::DynamoDB::Table + Arn: !GetAtt MyTable.Arn + Permissions: + - Read + - Write + SNSConnector: + Properties: + Destination: + Id: MySNSTopic + Permissions: + - Write + SFNConnector: + Properties: + Destination: + Id: MyStateMachine + Permissions: + - Read + - Write + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; + + MyLambdaFunction: + Type: AWS::Lambda::Function + Connectors: + LambdaSQSConnector: + Properties: + Destination: + Id: MyQueue + Permissions: + - Read + LambdaTableConnector: + Properties: + Destination: + Id: MyTable + Permissions: + - Read + - Write + LambdaTableConnectorWithTableArn: + Properties: + Destination: + Type: AWS::DynamoDB::Table + Arn: !GetAtt MyTable.Arn + Permissions: + - Read + - Write + Properties: + Role: !GetAtt MyRole.Arn + Runtime: nodejs14.x + Handler: index.handler + Code: + ZipFile: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; + Environment: + Variables: + TABLE_NAME: !Ref MyTable + + MyRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: lambda.amazonaws.com + + MyBucket: + Type: AWS::S3::Bucket + MyQueue: + Type: AWS::SQS::Queue + MySNSTopic: + Type: AWS::SNS::Topic + MyStateMachine: + Type: AWS::Serverless::StateMachine + Properties: + Definition: + StartAt: MyLambdaState + MyTable: + Type: AWS::DynamoDB::Table + Properties: + BillingMode: PAY_PER_REQUEST + AttributeDefinitions: + - AttributeName: Id + AttributeType: S + KeySchema: + - AttributeName: Id + KeyType: HASH diff --git a/tests/translator/input/embedded_connectors_hardcoded_props.yaml b/tests/translator/input/embedded_connectors_hardcoded_props.yaml new file mode 100644 index 000000000..5c84285d9 --- /dev/null +++ b/tests/translator/input/embedded_connectors_hardcoded_props.yaml @@ -0,0 +1,67 @@ +Transform: AWS::Serverless-2016-10-31 +Resources: + MyFunction: + Type: AWS::Lambda::Function + + MyRule: + Type: AWS::Events::Rule + Connectors: + RuleToTopic: + Properties: + Destination: + Type: AWS::SNS::Topic + Arn: !Ref MyTopic + Permissions: + - Write + + MyQueue: + Type: AWS::SQS::Queue + MyQueue2: + Type: AWS::SQS::Queue + + MyTopic: + Type: AWS::SNS::Topic + Connectors: + TopicToQueue: + Properties: + Destination: + Type: AWS::SQS::Queue + Arn: !Ref MyQueue + QueueUrl: sqs.us.amazonaws.com/1234567890/test + Permissions: + - Write + + MyApiV1: + Type: AWS::ApiGateway::RestApi + Connectors: + ApiV1ToLambda: + Properties: + SourceReference: + Qualifier: Prod/GET/foobar + Destination: + Id: MyFunction + Permissions: + - Write + + MyApiV2: + Type: AWS::ApiGatewayV2::Api + Connectors: + ApiV2ToLambda: + Properties: + SourceReference: + Qualifier: '*' + Destination: + Id: MyFunction + Permissions: + - Write + + MySNSTopic: + Type: AWS::SNS::Topic + Connectors: + TopicToLambdaHardcoded: + Properties: + Destination: + Type: AWS::Lambda::Function + Arn: !GetAtt MyFunction.Arn + Permissions: + - Write diff --git a/tests/translator/input/embedded_connectors_rule_to.yaml b/tests/translator/input/embedded_connectors_rule_to.yaml new file mode 100644 index 000000000..4fcf8fbf0 --- /dev/null +++ b/tests/translator/input/embedded_connectors_rule_to.yaml @@ -0,0 +1,86 @@ +Resources: + MyEventsRule1: + Type: AWS::Events::Rule + Connectors: + SfnConnector: + Properties: + Destination: + Id: StateMachine + Permissions: + - Write + Properties: + Name: mynewabc + EventPattern: + source: + - aws.ec2 + State: ENABLED + Targets: + - RoleArn: !GetAtt MyRuleRole.Arn + Arn: !GetAtt StateMachine.Arn + Id: StateMachine + + MyEventsRule2: + Type: AWS::Events::Rule + Connectors: + MyEVBusConnector: + Properties: + Destination: + Id: EventBus + Permissions: + - Write + Properties: + Name: mynewabc + EventPattern: + source: + - aws.ec2 + State: ENABLED + Targets: + - RoleArn: !GetAtt MyRuleRole.Arn + Arn: !GetAtt 'EventBus.Arn' + Id: EventBus + + MyEventsRuleToDefaultBus: + Type: AWS::Events::Rule + Connectors: + MyConnectorToDefaultBus: + Properties: + Destination: + Type: AWS::Events::EventBus + Arn: !Sub arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default + Permissions: + - Write + Properties: + Name: mynewabc + EventPattern: + source: + - aws.ec2 + State: ENABLED + Targets: + - RoleArn: !GetAtt MyRuleRole.Arn + Arn: !Sub arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default + Id: EventBus + + MyRuleRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Statement: + - Effect: Allow + Principal: + Service: events.amazonaws.com + Action: sts:AssumeRole + + StateMachine: + Type: AWS::Serverless::StateMachine + Properties: + Type: EXPRESS + Definition: + StartAt: MyLambdaState + Policies: + - LambdaInvokePolicy: + FunctionName: SomethingIsNotStateMachineFunction + + EventBus: + Type: AWS::Events::EventBus + Properties: + Name: !Sub '${AWS::StackName}-EventBus' diff --git a/tests/translator/input/embedded_connectors_sfn_to.yaml b/tests/translator/input/embedded_connectors_sfn_to.yaml new file mode 100644 index 000000000..952aebfbb --- /dev/null +++ b/tests/translator/input/embedded_connectors_sfn_to.yaml @@ -0,0 +1,56 @@ +Resources: + MyStateMachine: + Type: AWS::Serverless::StateMachine + Connectors: + SfnToFunction: + Properties: + Destination: + Id: MyFunction + Permissions: + - Write + SfnToSfn: + Properties: + Destination: + Id: MyStateMachineWithoutPolicy + Permissions: + - Read + - Write + Properties: + Type: EXPRESS + Definition: + StartAt: MyLambdaState + Policies: + - LambdaInvokePolicy: + FunctionName: SomethingIsNotStateMachineFunction + + MyStateMachineWithoutPolicy: + Type: AWS::Serverless::StateMachine + Connectors: + SfnToFunctionWithoutPolicy: + Properties: + Destination: + Id: MyFunction + Permissions: + - Write + Properties: + Type: EXPRESS + Definition: + StartAt: TryDoSomething + States: + TryDoSomething: + Type: Task + Resource: !Sub arn:${AWS::Partition}:states:::lambda:invoke + Parameters: + FunctionName: !Ref MyFunction + End: true + + MyFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; diff --git a/tests/translator/input/embedded_connectors_sns_to.yaml b/tests/translator/input/embedded_connectors_sns_to.yaml new file mode 100644 index 000000000..ea7ac8bf5 --- /dev/null +++ b/tests/translator/input/embedded_connectors_sns_to.yaml @@ -0,0 +1,27 @@ +Resources: + MySNSTopic: + Type: AWS::SNS::Topic + Connectors: + SnsToQueueConnector: + Properties: + Destination: + Id: MyQueue + Permissions: + - Write + SnsToFunctionConnector: + Properties: + Destination: + Id: MyFunction + Permissions: + - Write + + MyQueue: + Type: AWS::SQS::Queue + + MyFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: " const AWS = require('aws-sdk'); exports.handler = async (event)\ + \ => { console.log(JSON.stringify(event)); };" diff --git a/tests/translator/input/embedded_connectors_table_to_function.yaml b/tests/translator/input/embedded_connectors_table_to_function.yaml new file mode 100644 index 000000000..8cd3907a6 --- /dev/null +++ b/tests/translator/input/embedded_connectors_table_to_function.yaml @@ -0,0 +1,61 @@ +Resources: + MyServerlessFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs14.x + Handler: index.handler + InlineCode: | + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; + + MyLambdaFunction: + Type: AWS::Lambda::Function + Properties: + Role: !GetAtt MyRole.Arn + Runtime: nodejs14.x + Handler: index.handler + Code: + ZipFile: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; + Environment: + Variables: + TABLE_NAME: !Ref MyTable + MyRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: lambda.amazonaws.com + + MyTable: + Type: AWS::DynamoDB::Table + Connectors: + TableConnectorLambdaFunction: + Properties: + Destination: + Id: MyLambdaFunction + Permissions: + - Read + TableConnectorServerlessFunction: + Properties: + Destination: + Id: MyServerlessFunction + Permissions: + - Read + Properties: + BillingMode: PAY_PER_REQUEST + StreamSpecification: + StreamViewType: NEW_AND_OLD_IMAGES + AttributeDefinitions: + - AttributeName: Id + AttributeType: S + KeySchema: + - AttributeName: Id + KeyType: HASH diff --git a/tests/translator/output/aws-cn/embedded_connectors_function_to.json b/tests/translator/output/aws-cn/embedded_connectors_function_to.json new file mode 100644 index 000000000..bee8eeaa3 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_function_to.json @@ -0,0 +1,878 @@ +{ + "Resources": { + "BucketConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "BucketConnector": { + "Destination": { + "Type": "AWS::S3::Bucket" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:GetObject", + "s3:GetObjectAcl", + "s3:GetObjectLegalHold", + "s3:GetObjectRetention", + "s3:GetObjectTorrent", + "s3:GetObjectVersion", + "s3:GetObjectVersionAcl", + "s3:GetObjectVersionForReplication", + "s3:GetObjectVersionTorrent", + "s3:ListBucket", + "s3:ListBucketMultipartUploads", + "s3:ListBucketVersions", + "s3:ListMultipartUploadParts" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaSQSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaSQSConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaTableConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaTableConnector": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaTableConnectorWithTableArnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaTableConnectorWithTableArn": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyLambdaFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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" + }, + "MyStateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ] + }, + "Type": "AWS::DynamoDB::Table" + }, + "SFNConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SFNConnector": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:StartExecution", + "states:StartSyncExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachine" + } + ] + }, + { + "Action": [ + "states:StopExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachine", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "states:DescribeStateMachine", + "states:ListExecutions" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachine" + } + ] + }, + { + "Action": [ + "states:DescribeExecution", + "states:DescribeStateMachineForExecution", + "states:GetExecutionHistory" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachine", + "Name" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SNSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SNSConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sns:Publish" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MySNSTopic" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SQSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SQSConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:DeleteMessage", + "sqs:SendMessage", + "sqs:ChangeMessageVisibility", + "sqs:PurgeQueue" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnector": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorWithTableArnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorWithTableArn": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json b/tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json new file mode 100644 index 000000000..3fce69fb3 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json @@ -0,0 +1,217 @@ +{ + "Resources": { + "ApiV1ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "ApiV1ToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::ApiGateway::RestApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "Prod/GET/foobar", + "SourceResourceId": { + "Ref": "MyApiV1" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "ApiV2ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "ApiV2ToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::ApiGatewayV2::Api" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyApiV2" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyApiV1": { + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiV2": { + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyFunction": { + "Type": "AWS::Lambda::Function" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueue2": { + "Type": "AWS::SQS::Queue" + }, + "MyRule": { + "Type": "AWS::Events::Rule" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyTopic": { + "Type": "AWS::SNS::Topic" + }, + "RuleToTopicTopicPolicy": { + "Metadata": { + "aws:sam:connectors": { + "RuleToTopic": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MyTopic" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MyTopic" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "TopicToLambdaHardcodedWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "TopicToLambdaHardcoded": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "sns.amazonaws.com", + "SourceArn": { + "Ref": "MySNSTopic" + } + }, + "Type": "AWS::Lambda::Permission" + }, + "TopicToQueueQueuePolicy": { + "Metadata": { + "aws:sam:connectors": { + "TopicToQueue": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Ref": "MyTopic" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "sns.amazonaws.com" + }, + "Resource": { + "Ref": "MyQueue" + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + "sqs.us.amazonaws.com/1234567890/test" + ] + }, + "Type": "AWS::SQS::QueuePolicy" + } + } +} diff --git a/tests/translator/output/aws-cn/embedded_connectors_rule_to.json b/tests/translator/output/aws-cn/embedded_connectors_rule_to.json new file mode 100644 index 000000000..b1d06c626 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_rule_to.json @@ -0,0 +1,308 @@ +{ + "Resources": { + "EventBus": { + "Properties": { + "Name": { + "Fn::Sub": "${AWS::StackName}-EventBus" + } + }, + "Type": "AWS::Events::EventBus" + }, + "MyConnectorToDefaultBusPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorToDefaultBus": { + "Destination": { + "Type": "AWS::Events::EventBus" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyEVBusConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyEVBusConnector": { + "Destination": { + "Type": "AWS::Events::EventBus" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyEventsRule1": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "StateMachine", + "Arn" + ] + }, + "Id": "StateMachine", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyEventsRule2": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + }, + "Id": "EventBus", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyEventsRuleToDefaultBus": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" + }, + "Id": "EventBus", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "SfnConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnConnector": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:StartExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "StateMachine" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "StateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "StateMachineRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "StateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}*", + { + "functionName": "SomethingIsNotStateMachineFunction" + } + ] + } + } + ] + }, + "PolicyName": "StateMachineRolePolicy0" + } + ], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-cn/embedded_connectors_sfn_to.json b/tests/translator/output/aws-cn/embedded_connectors_sfn_to.json new file mode 100644 index 000000000..6e4c2ba96 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_sfn_to.json @@ -0,0 +1,399 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.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" + }, + "MyStateMachine": { + "DependsOn": [ + "SfnToSfnPolicy" + ], + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}*", + { + "functionName": "SomethingIsNotStateMachineFunction" + } + ] + } + } + ] + }, + "PolicyName": "MyStateMachineRolePolicy0" + } + ], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyStateMachineWithoutPolicy": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"TryDoSomething\",", + " \"States\": {", + " \"TryDoSomething\": {", + " \"End\": true,", + " \"Parameters\": {", + " \"FunctionName\": \"${definition_substitution_1}\"", + " },", + " \"Resource\": \"${definition_substitution_2}\",", + " \"Type\": \"Task\"", + " }", + " }", + "}" + ] + ] + }, + "DefinitionSubstitutions": { + "definition_substitution_1": { + "Ref": "MyFunction" + }, + "definition_substitution_2": { + "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" + } + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicyRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineWithoutPolicyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "SfnToFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToFunction": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SfnToFunctionWithoutPolicyPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToFunctionWithoutPolicy": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineWithoutPolicyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SfnToSfnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToSfn": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:DescribeExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicy", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "events:DescribeRule" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" + } + ] + }, + { + "Action": [ + "states:StartExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachineWithoutPolicy" + } + ] + }, + { + "Action": [ + "states:StopExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicy", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "events:PutTargets", + "events:PutRule" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/aws-cn/embedded_connectors_sns_to.json b/tests/translator/output/aws-cn/embedded_connectors_sns_to.json new file mode 100644 index 000000000..da5ba47ae --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_sns_to.json @@ -0,0 +1,137 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": " const AWS = require('aws-sdk'); exports.handler = async (event) => { console.log(JSON.stringify(event)); };" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "SnsToFunctionConnectorWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "SnsToFunctionConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "sns.amazonaws.com", + "SourceArn": { + "Ref": "MySNSTopic" + } + }, + "Type": "AWS::Lambda::Permission" + }, + "SnsToQueueConnectorQueuePolicy": { + "Metadata": { + "aws:sam:connectors": { + "SnsToQueueConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Ref": "MySNSTopic" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "sns.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "MyQueue" + } + ] + }, + "Type": "AWS::SQS::QueuePolicy" + } + } +} diff --git a/tests/translator/output/aws-cn/embedded_connectors_table_to_function.json b/tests/translator/output/aws-cn/embedded_connectors_table_to_function.json new file mode 100644 index 000000000..bb1cc4d09 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_table_to_function.json @@ -0,0 +1,218 @@ +{ + "Resources": { + "MyLambdaFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ], + "StreamSpecification": { + "StreamViewType": "NEW_AND_OLD_IMAGES" + } + }, + "Type": "AWS::DynamoDB::Table" + }, + "TableConnectorLambdaFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorLambdaFunction": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::DynamoDB::Table" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:DescribeStream", + "dynamodb:GetRecords", + "dynamodb:GetShardIterator", + "dynamodb:ListStreams" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "${SourceArn}/stream/*", + { + "SourceArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorServerlessFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorServerlessFunction": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::DynamoDB::Table" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:DescribeStream", + "dynamodb:GetRecords", + "dynamodb:GetShardIterator", + "dynamodb:ListStreams" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "${SourceArn}/stream/*", + { + "SourceArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_function_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_function_to.json new file mode 100644 index 000000000..41389d83d --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_function_to.json @@ -0,0 +1,878 @@ +{ + "Resources": { + "BucketConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "BucketConnector": { + "Destination": { + "Type": "AWS::S3::Bucket" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:GetObject", + "s3:GetObjectAcl", + "s3:GetObjectLegalHold", + "s3:GetObjectRetention", + "s3:GetObjectTorrent", + "s3:GetObjectVersion", + "s3:GetObjectVersionAcl", + "s3:GetObjectVersionForReplication", + "s3:GetObjectVersionTorrent", + "s3:ListBucket", + "s3:ListBucketMultipartUploads", + "s3:ListBucketVersions", + "s3:ListMultipartUploadParts" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaSQSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaSQSConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaTableConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaTableConnector": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaTableConnectorWithTableArnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaTableConnectorWithTableArn": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyLambdaFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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" + }, + "MyStateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ] + }, + "Type": "AWS::DynamoDB::Table" + }, + "SFNConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SFNConnector": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:StartExecution", + "states:StartSyncExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachine" + } + ] + }, + { + "Action": [ + "states:StopExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachine", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "states:DescribeStateMachine", + "states:ListExecutions" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachine" + } + ] + }, + { + "Action": [ + "states:DescribeExecution", + "states:DescribeStateMachineForExecution", + "states:GetExecutionHistory" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachine", + "Name" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SNSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SNSConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sns:Publish" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MySNSTopic" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SQSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SQSConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:DeleteMessage", + "sqs:SendMessage", + "sqs:ChangeMessageVisibility", + "sqs:PurgeQueue" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnector": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorWithTableArnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorWithTableArn": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json b/tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json new file mode 100644 index 000000000..3fce69fb3 --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json @@ -0,0 +1,217 @@ +{ + "Resources": { + "ApiV1ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "ApiV1ToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::ApiGateway::RestApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "Prod/GET/foobar", + "SourceResourceId": { + "Ref": "MyApiV1" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "ApiV2ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "ApiV2ToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::ApiGatewayV2::Api" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyApiV2" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyApiV1": { + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiV2": { + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyFunction": { + "Type": "AWS::Lambda::Function" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueue2": { + "Type": "AWS::SQS::Queue" + }, + "MyRule": { + "Type": "AWS::Events::Rule" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyTopic": { + "Type": "AWS::SNS::Topic" + }, + "RuleToTopicTopicPolicy": { + "Metadata": { + "aws:sam:connectors": { + "RuleToTopic": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MyTopic" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MyTopic" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "TopicToLambdaHardcodedWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "TopicToLambdaHardcoded": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "sns.amazonaws.com", + "SourceArn": { + "Ref": "MySNSTopic" + } + }, + "Type": "AWS::Lambda::Permission" + }, + "TopicToQueueQueuePolicy": { + "Metadata": { + "aws:sam:connectors": { + "TopicToQueue": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Ref": "MyTopic" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "sns.amazonaws.com" + }, + "Resource": { + "Ref": "MyQueue" + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + "sqs.us.amazonaws.com/1234567890/test" + ] + }, + "Type": "AWS::SQS::QueuePolicy" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json new file mode 100644 index 000000000..b1d06c626 --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json @@ -0,0 +1,308 @@ +{ + "Resources": { + "EventBus": { + "Properties": { + "Name": { + "Fn::Sub": "${AWS::StackName}-EventBus" + } + }, + "Type": "AWS::Events::EventBus" + }, + "MyConnectorToDefaultBusPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorToDefaultBus": { + "Destination": { + "Type": "AWS::Events::EventBus" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyEVBusConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyEVBusConnector": { + "Destination": { + "Type": "AWS::Events::EventBus" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyEventsRule1": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "StateMachine", + "Arn" + ] + }, + "Id": "StateMachine", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyEventsRule2": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + }, + "Id": "EventBus", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyEventsRuleToDefaultBus": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" + }, + "Id": "EventBus", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "SfnConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnConnector": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:StartExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "StateMachine" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "StateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "StateMachineRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "StateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}*", + { + "functionName": "SomethingIsNotStateMachineFunction" + } + ] + } + } + ] + }, + "PolicyName": "StateMachineRolePolicy0" + } + ], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json new file mode 100644 index 000000000..b2586e091 --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json @@ -0,0 +1,399 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.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" + }, + "MyStateMachine": { + "DependsOn": [ + "SfnToSfnPolicy" + ], + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}*", + { + "functionName": "SomethingIsNotStateMachineFunction" + } + ] + } + } + ] + }, + "PolicyName": "MyStateMachineRolePolicy0" + } + ], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyStateMachineWithoutPolicy": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"TryDoSomething\",", + " \"States\": {", + " \"TryDoSomething\": {", + " \"End\": true,", + " \"Parameters\": {", + " \"FunctionName\": \"${definition_substitution_1}\"", + " },", + " \"Resource\": \"${definition_substitution_2}\",", + " \"Type\": \"Task\"", + " }", + " }", + "}" + ] + ] + }, + "DefinitionSubstitutions": { + "definition_substitution_1": { + "Ref": "MyFunction" + }, + "definition_substitution_2": { + "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" + } + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicyRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineWithoutPolicyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "SfnToFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToFunction": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SfnToFunctionWithoutPolicyPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToFunctionWithoutPolicy": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineWithoutPolicyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SfnToSfnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToSfn": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:DescribeExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicy", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "events:DescribeRule" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" + } + ] + }, + { + "Action": [ + "states:StartExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachineWithoutPolicy" + } + ] + }, + { + "Action": [ + "states:StopExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicy", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "events:PutTargets", + "events:PutRule" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json new file mode 100644 index 000000000..56d03a13c --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json @@ -0,0 +1,137 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": " const AWS = require('aws-sdk'); exports.handler = async (event) => { console.log(JSON.stringify(event)); };" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "SnsToFunctionConnectorWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "SnsToFunctionConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "sns.amazonaws.com", + "SourceArn": { + "Ref": "MySNSTopic" + } + }, + "Type": "AWS::Lambda::Permission" + }, + "SnsToQueueConnectorQueuePolicy": { + "Metadata": { + "aws:sam:connectors": { + "SnsToQueueConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Ref": "MySNSTopic" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "sns.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "MyQueue" + } + ] + }, + "Type": "AWS::SQS::QueuePolicy" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json b/tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json new file mode 100644 index 000000000..a5b7c523f --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json @@ -0,0 +1,218 @@ +{ + "Resources": { + "MyLambdaFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ], + "StreamSpecification": { + "StreamViewType": "NEW_AND_OLD_IMAGES" + } + }, + "Type": "AWS::DynamoDB::Table" + }, + "TableConnectorLambdaFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorLambdaFunction": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::DynamoDB::Table" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:DescribeStream", + "dynamodb:GetRecords", + "dynamodb:GetShardIterator", + "dynamodb:ListStreams" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "${SourceArn}/stream/*", + { + "SourceArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorServerlessFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorServerlessFunction": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::DynamoDB::Table" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:DescribeStream", + "dynamodb:GetRecords", + "dynamodb:GetShardIterator", + "dynamodb:ListStreams" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "${SourceArn}/stream/*", + { + "SourceArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/embedded_connectors_function_to.json b/tests/translator/output/embedded_connectors_function_to.json new file mode 100644 index 000000000..78d54952f --- /dev/null +++ b/tests/translator/output/embedded_connectors_function_to.json @@ -0,0 +1,878 @@ +{ + "Resources": { + "BucketConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "BucketConnector": { + "Destination": { + "Type": "AWS::S3::Bucket" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:GetObject", + "s3:GetObjectAcl", + "s3:GetObjectLegalHold", + "s3:GetObjectRetention", + "s3:GetObjectTorrent", + "s3:GetObjectVersion", + "s3:GetObjectVersionAcl", + "s3:GetObjectVersionForReplication", + "s3:GetObjectVersionTorrent", + "s3:ListBucket", + "s3:ListBucketMultipartUploads", + "s3:ListBucketVersions", + "s3:ListMultipartUploadParts" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaSQSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaSQSConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaTableConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaTableConnector": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "LambdaTableConnectorWithTableArnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "LambdaTableConnectorWithTableArn": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Lambda::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyLambdaFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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" + }, + "MyStateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ] + }, + "Type": "AWS::DynamoDB::Table" + }, + "SFNConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SFNConnector": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:StartExecution", + "states:StartSyncExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachine" + } + ] + }, + { + "Action": [ + "states:StopExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachine", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "states:DescribeStateMachine", + "states:ListExecutions" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachine" + } + ] + }, + { + "Action": [ + "states:DescribeExecution", + "states:DescribeStateMachineForExecution", + "states:GetExecutionHistory" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachine", + "Name" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SNSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SNSConnector": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sns:Publish" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MySNSTopic" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SQSConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SQSConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:DeleteMessage", + "sqs:SendMessage", + "sqs:ChangeMessageVisibility", + "sqs:PurgeQueue" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnector": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorWithTableArnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorWithTableArn": { + "Destination": { + "Type": "AWS::DynamoDB::Table" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:GetItem", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:BatchGetItem", + "dynamodb:ConditionCheckItem", + "dynamodb:PartiQLSelect" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "dynamodb:PutItem", + "dynamodb:UpdateItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:PartiQLDelete", + "dynamodb:PartiQLInsert", + "dynamodb:PartiQLUpdate" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/index/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/embedded_connectors_hardcoded_props.json b/tests/translator/output/embedded_connectors_hardcoded_props.json new file mode 100644 index 000000000..3fce69fb3 --- /dev/null +++ b/tests/translator/output/embedded_connectors_hardcoded_props.json @@ -0,0 +1,217 @@ +{ + "Resources": { + "ApiV1ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "ApiV1ToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::ApiGateway::RestApi" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "Prod/GET/foobar", + "SourceResourceId": { + "Ref": "MyApiV1" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "ApiV2ToLambdaWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "ApiV2ToLambda": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::ApiGatewayV2::Api" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SourceResourceId}/${SourceQualifier}", + { + "SourceQualifier": "*", + "SourceResourceId": { + "Ref": "MyApiV2" + } + } + ] + } + }, + "Type": "AWS::Lambda::Permission" + }, + "MyApiV1": { + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiV2": { + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyFunction": { + "Type": "AWS::Lambda::Function" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueue2": { + "Type": "AWS::SQS::Queue" + }, + "MyRule": { + "Type": "AWS::Events::Rule" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyTopic": { + "Type": "AWS::SNS::Topic" + }, + "RuleToTopicTopicPolicy": { + "Metadata": { + "aws:sam:connectors": { + "RuleToTopic": { + "Destination": { + "Type": "AWS::SNS::Topic" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sns:Publish", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Fn::GetAtt": [ + "MyRule", + "Arn" + ] + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + }, + "Resource": { + "Ref": "MyTopic" + } + } + ], + "Version": "2012-10-17" + }, + "Topics": [ + { + "Ref": "MyTopic" + } + ] + }, + "Type": "AWS::SNS::TopicPolicy" + }, + "TopicToLambdaHardcodedWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "TopicToLambdaHardcoded": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "sns.amazonaws.com", + "SourceArn": { + "Ref": "MySNSTopic" + } + }, + "Type": "AWS::Lambda::Permission" + }, + "TopicToQueueQueuePolicy": { + "Metadata": { + "aws:sam:connectors": { + "TopicToQueue": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Ref": "MyTopic" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "sns.amazonaws.com" + }, + "Resource": { + "Ref": "MyQueue" + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + "sqs.us.amazonaws.com/1234567890/test" + ] + }, + "Type": "AWS::SQS::QueuePolicy" + } + } +} diff --git a/tests/translator/output/embedded_connectors_rule_to.json b/tests/translator/output/embedded_connectors_rule_to.json new file mode 100644 index 000000000..b1d06c626 --- /dev/null +++ b/tests/translator/output/embedded_connectors_rule_to.json @@ -0,0 +1,308 @@ +{ + "Resources": { + "EventBus": { + "Properties": { + "Name": { + "Fn::Sub": "${AWS::StackName}-EventBus" + } + }, + "Type": "AWS::Events::EventBus" + }, + "MyConnectorToDefaultBusPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyConnectorToDefaultBus": { + "Destination": { + "Type": "AWS::Events::EventBus" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyEVBusConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyEVBusConnector": { + "Destination": { + "Type": "AWS::Events::EventBus" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "MyEventsRule1": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "StateMachine", + "Arn" + ] + }, + "Id": "StateMachine", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyEventsRule2": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + }, + "Id": "EventBus", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyEventsRuleToDefaultBus": { + "Properties": { + "EventPattern": { + "source": [ + "aws.ec2" + ] + }, + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" + }, + "Id": "EventBus", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } + } + ] + }, + "Type": "AWS::Events::Rule" + }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "SfnConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnConnector": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:StartExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "StateMachine" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "StateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "StateMachineRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "StateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}*", + { + "functionName": "SomethingIsNotStateMachineFunction" + } + ] + } + } + ] + }, + "PolicyName": "StateMachineRolePolicy0" + } + ], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + } + } +} diff --git a/tests/translator/output/embedded_connectors_sfn_to.json b/tests/translator/output/embedded_connectors_sfn_to.json new file mode 100644 index 000000000..4eeae87b6 --- /dev/null +++ b/tests/translator/output/embedded_connectors_sfn_to.json @@ -0,0 +1,399 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.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" + }, + "MyStateMachine": { + "DependsOn": [ + "SfnToSfnPolicy" + ], + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": { + "Fn::Sub": [ + "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${functionName}*", + { + "functionName": "SomethingIsNotStateMachineFunction" + } + ] + } + } + ] + }, + "PolicyName": "MyStateMachineRolePolicy0" + } + ], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyStateMachineWithoutPolicy": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"TryDoSomething\",", + " \"States\": {", + " \"TryDoSomething\": {", + " \"End\": true,", + " \"Parameters\": {", + " \"FunctionName\": \"${definition_substitution_1}\"", + " },", + " \"Resource\": \"${definition_substitution_2}\",", + " \"Type\": \"Task\"", + " }", + " }", + "}" + ] + ] + }, + "DefinitionSubstitutions": { + "definition_substitution_1": { + "Ref": "MyFunction" + }, + "definition_substitution_2": { + "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" + } + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicyRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineWithoutPolicyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "SfnToFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToFunction": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SfnToFunctionWithoutPolicyPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToFunctionWithoutPolicy": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineWithoutPolicyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "SfnToSfnPolicy": { + "Metadata": { + "aws:sam:connectors": { + "SfnToSfn": { + "Destination": { + "Type": "AWS::Serverless::StateMachine" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "states:DescribeExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicy", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "events:DescribeRule" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" + } + ] + }, + { + "Action": [ + "states:StartExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Ref": "MyStateMachineWithoutPolicy" + } + ] + }, + { + "Action": [ + "states:StopExecution" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "arn:${AWS::Partition}:states:${AWS::Region}:${AWS::AccountId}:execution:${DestinationName}:*", + { + "DestinationName": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicy", + "Name" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "events:PutTargets", + "events:PutRule" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/embedded_connectors_sns_to.json b/tests/translator/output/embedded_connectors_sns_to.json new file mode 100644 index 000000000..6fc5f2872 --- /dev/null +++ b/tests/translator/output/embedded_connectors_sns_to.json @@ -0,0 +1,137 @@ +{ + "Resources": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": " const AWS = require('aws-sdk'); exports.handler = async (event) => { console.log(JSON.stringify(event)); };" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "SnsToFunctionConnectorWriteLambdaPermission": { + "Metadata": { + "aws:sam:connectors": { + "SnsToFunctionConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + }, + "Principal": "sns.amazonaws.com", + "SourceArn": { + "Ref": "MySNSTopic" + } + }, + "Type": "AWS::Lambda::Permission" + }, + "SnsToQueueConnectorQueuePolicy": { + "Metadata": { + "aws:sam:connectors": { + "SnsToQueueConnector": { + "Destination": { + "Type": "AWS::SQS::Queue" + }, + "Source": { + "Type": "AWS::SNS::Topic" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "sqs:SendMessage", + "Condition": { + "ArnEquals": { + "aws:SourceArn": { + "Ref": "MySNSTopic" + } + } + }, + "Effect": "Allow", + "Principal": { + "Service": "sns.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + } + ], + "Version": "2012-10-17" + }, + "Queues": [ + { + "Ref": "MyQueue" + } + ] + }, + "Type": "AWS::SQS::QueuePolicy" + } + } +} diff --git a/tests/translator/output/embedded_connectors_table_to_function.json b/tests/translator/output/embedded_connectors_table_to_function.json new file mode 100644 index 000000000..498b2c152 --- /dev/null +++ b/tests/translator/output/embedded_connectors_table_to_function.json @@ -0,0 +1,218 @@ +{ + "Resources": { + "MyLambdaFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, + "MyServerlessFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyServerlessFunctionRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x", + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MyServerlessFunctionRole": { + "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" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ], + "StreamSpecification": { + "StreamViewType": "NEW_AND_OLD_IMAGES" + } + }, + "Type": "AWS::DynamoDB::Table" + }, + "TableConnectorLambdaFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorLambdaFunction": { + "Destination": { + "Type": "AWS::Lambda::Function" + }, + "Source": { + "Type": "AWS::DynamoDB::Table" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:DescribeStream", + "dynamodb:GetRecords", + "dynamodb:GetShardIterator", + "dynamodb:ListStreams" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "${SourceArn}/stream/*", + { + "SourceArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + }, + "TableConnectorServerlessFunctionPolicy": { + "Metadata": { + "aws:sam:connectors": { + "TableConnectorServerlessFunction": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::DynamoDB::Table" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "dynamodb:DescribeStream", + "dynamodb:GetRecords", + "dynamodb:GetShardIterator", + "dynamodb:ListStreams" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Sub": [ + "${SourceArn}/stream/*", + { + "SourceArn": { + "Fn::GetAtt": [ + "MyTable", + "Arn" + ] + } + } + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyServerlessFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} From 48366032f83b1f4029a174ef2fcf1191c9084e12 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Tue, 17 Jan 2023 16:41:52 -0800 Subject: [PATCH 08/25] schema update --- samtranslator/schema/aws_serverless_api.py | 1 + samtranslator/schema/aws_serverless_function.py | 1 + samtranslator/schema/aws_serverless_httpapi.py | 1 + .../schema/aws_serverless_simpletable.py | 1 + .../schema/aws_serverless_statemachine.py | 1 + samtranslator/schema/schema.json | 15 +++++++++++++++ 6 files changed, 20 insertions(+) diff --git a/samtranslator/schema/aws_serverless_api.py b/samtranslator/schema/aws_serverless_api.py index 0d318d4bd..bf7e63ef8 100644 --- a/samtranslator/schema/aws_serverless_api.py +++ b/samtranslator/schema/aws_serverless_api.py @@ -217,6 +217,7 @@ class Resource(BaseModel): Properties: Properties Condition: Optional[PassThrough] DeletionPolicy: Optional[PassThrough] + Connectors: Optional[PassThrough] UpdatePolicy: Optional[PassThrough] UpdateReplacePolicy: Optional[PassThrough] DependsOn: Optional[PassThrough] diff --git a/samtranslator/schema/aws_serverless_function.py b/samtranslator/schema/aws_serverless_function.py index 4e63026fc..a3e94cf42 100644 --- a/samtranslator/schema/aws_serverless_function.py +++ b/samtranslator/schema/aws_serverless_function.py @@ -542,6 +542,7 @@ class Globals(BaseModel): class Resource(BaseModel): Type: Literal["AWS::Serverless::Function"] Properties: Optional[Properties] + Connectors: Optional[PassThrough] DeletionPolicy: Optional[PassThrough] UpdateReplacePolicy: Optional[PassThrough] Condition: Optional[PassThrough] diff --git a/samtranslator/schema/aws_serverless_httpapi.py b/samtranslator/schema/aws_serverless_httpapi.py index b489abe6e..c31d62c97 100644 --- a/samtranslator/schema/aws_serverless_httpapi.py +++ b/samtranslator/schema/aws_serverless_httpapi.py @@ -136,3 +136,4 @@ class Resource(BaseModel): Properties: Optional[Properties] Metadata: Optional[PassThrough] Condition: Optional[PassThrough] + Connectors: Optional[PassThrough] diff --git a/samtranslator/schema/aws_serverless_simpletable.py b/samtranslator/schema/aws_serverless_simpletable.py index bf9937be2..4609daf63 100644 --- a/samtranslator/schema/aws_serverless_simpletable.py +++ b/samtranslator/schema/aws_serverless_simpletable.py @@ -33,3 +33,4 @@ class Globals(BaseModel): class Resource(BaseModel): Type: Literal["AWS::Serverless::SimpleTable"] Properties: Optional[Properties] + Connectors: Optional[PassThrough] diff --git a/samtranslator/schema/aws_serverless_statemachine.py b/samtranslator/schema/aws_serverless_statemachine.py index cf1482a60..e21595e8a 100644 --- a/samtranslator/schema/aws_serverless_statemachine.py +++ b/samtranslator/schema/aws_serverless_statemachine.py @@ -165,3 +165,4 @@ class Resource(BaseModel): Type: Literal["AWS::Serverless::StateMachine"] Properties: Properties Condition: Optional[PassThrough] + Connectors: Optional[PassThrough] diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index a88dc68b4..484e3f046 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -2786,6 +2786,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "DeletionPolicy": { "title": "Deletionpolicy" }, @@ -3987,6 +3990,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "DeletionPolicy": { "title": "Deletionpolicy" }, @@ -4647,6 +4653,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "Metadata": { "title": "Metadata" }, @@ -4841,6 +4850,9 @@ "samtranslator__schema__aws_serverless_simpletable__Resource": { "additionalProperties": false, "properties": { + "Connectors": { + "title": "Connectors" + }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" }, @@ -5271,6 +5283,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" }, From bf24177386b68497413657d79d35e158b0c91108 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Tue, 17 Jan 2023 16:48:24 -0800 Subject: [PATCH 09/25] type hints --- samtranslator/translator/translator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 21b230caa..05431afd5 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -127,7 +127,7 @@ def translate( self.sam_parser.parse(sam_template=sam_template, parameter_values=parameter_values, sam_plugins=sam_plugins) - document_errors: List[Exception] = [] + document_errors: List[Any] = [] add_embedded_connectors(sam_template=sam_template, document_errors=document_errors) template = copy.deepcopy(sam_template) @@ -189,7 +189,7 @@ def translate( DuplicateLogicalIdException(logical_id, resource.logical_id, resource.resource_type) ) except (InvalidResourceException, InvalidEventException, InvalidTemplateException) as e: - document_errors.append(e) # type: ignore[arg-type] + document_errors.append(e) if deployment_preference_collection.any_enabled(): template["Resources"].update(deployment_preference_collection.get_codedeploy_application().to_dict()) @@ -207,13 +207,13 @@ def translate( deployment_preference_collection.deployment_group(logical_id).to_dict() ) except InvalidResourceException as e: - document_errors.append(e) # type: ignore[arg-type] + document_errors.append(e) # Run the after-transform plugin target try: sam_plugins.act(LifeCycleEvents.after_transform_template, template) except (InvalidDocumentException, InvalidResourceException, InvalidTemplateException) as e: - document_errors.append(e) # type: ignore[arg-type] + document_errors.append(e) # Cleanup if "Transform" in template: From 47f4e339e24e64f8773d2b4f2a736caaa05c5b37 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Wed, 18 Jan 2023 12:05:26 -0800 Subject: [PATCH 10/25] error unit tests --- .../input/error_embedded_connectors.yaml | 142 ++++++++++++++++++ .../output/error_embedded_connectors.json | 65 ++++++++ 2 files changed, 207 insertions(+) create mode 100644 tests/translator/input/error_embedded_connectors.yaml create mode 100644 tests/translator/output/error_embedded_connectors.json diff --git a/tests/translator/input/error_embedded_connectors.yaml b/tests/translator/input/error_embedded_connectors.yaml new file mode 100644 index 000000000..789d08385 --- /dev/null +++ b/tests/translator/input/error_embedded_connectors.yaml @@ -0,0 +1,142 @@ +Resources: + MyFunctionNoDictConnector: + Type: AWS::Serverless::Function + Connectors: + NonDictConnector: foo + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + MyFunction: + Type: AWS::Serverless::Function + Connectors: + NonDictProperties: + Properties: foo + EmptyProperties: + Properties: + NoIdMissingType: + Properties: + Destination: + Arn: somearn + Permissions: + - Write + NoStrId: + Properties: + Destination: + Id: 42 + Permissions: + - Write + NonExistentId: + Properties: + Destination: + Id: ThisDoesntExist + Permissions: + - Write + UnsupportedAccessCategory: + Properties: + Destination: + Id: MyQueue + Permissions: + - PERMISSION + NoDestination: + Properties: + Permissions: + - Read + - Write + EmptyDestination: + Properties: + Destination: + Permissions: + - Read + - Write + NoPermissions: + Properties: + Destination: + Id: MyQueue + EmptyPermissions: + Properties: + Destination: + Id: MyQueue + Permissions: + EmptyPermissionsList: + Properties: + Destination: + Id: MyQueue + Permissions: [] + BothIdAndOtherProps: + Properties: + SourceReference: + Arn: + Destination: + Id: MyQueue + Permissions: + - Write + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + MyFunctionMissingRole: + Connectors: + MissingRole: + Properties: + Destination: + Id: MyQueue + Permissions: + - Write + Type: AWS::Lambda::Function + Properties: + Runtime: python3.9 + Handler: foo + Code: + ZipFile: foo + + MyResourceWithoutType: + Connectors: + ResourceWithoutType: + Properties: + Destination: + Id: MyFunction + Permissions: + - Write + Properties: + Foo: Bar + + EventsRule: + Type: AWS::Events::Rule + Connectors: + MissingSnsTopicArn: + Properties: + Destination: + Type: AWS::SNS::Topic + Permissions: + - Write + MissingLambdaFunctionArn: + Properties: + Destination: + Type: AWS::Lambda::Function + Permissions: + - Write + MissingSqsQueueUrl: + Properties: + Destination: + Type: AWS::SQS:Queue + Permissions: + - Write + + MyQueue: + Connectors: + MissingRoleDestination: + Properties: + Destination: + Id: MyFunctionMissingRole + Permissions: + - Read + - Write + UnsupportedAccessCategoryCombination: + Properties: + Destination: + Id: MyFunction + Permissions: + - Write + Type: AWS::SQS::Queue \ No newline at end of file diff --git a/tests/translator/output/error_embedded_connectors.json b/tests/translator/output/error_embedded_connectors.json new file mode 100644 index 000000000..3e20628e6 --- /dev/null +++ b/tests/translator/output/error_embedded_connectors.json @@ -0,0 +1,65 @@ +{ + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 20. Resource with id [BothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties. Resource with id [EmptyDestination] is invalid. Missing required property 'Destination'. Resource with id [EmptyPermissions] is invalid. Missing required property 'Permissions'. Resource with id [EmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write. Resource with id [EmptyProperties] is invalid. Properties of a resource must be an object. Resource with id [MissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource. Resource with id [MissingRole] is invalid. Unable to get IAM role name from 'Source' resource. Resource with id [MissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource. Resource with id [MissingSnsTopicArn] is invalid. Destination.Arn is missing. Resource with id [MissingSqsQueueUrl] 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 [NoDestination] is invalid. Missing required property 'Destination'. Resource with id [NoIdMissingType] is invalid. 'Type' is missing or not a string. Resource with id [NoPermissions] is invalid. Missing required property 'Permissions'. Resource with id [NoStrId] is invalid. 'Id' is missing or not a string. Resource with id [NonDictConnector] is invalid. NonDictConnector should be a map. Resource with id [NonDictProperties] is invalid. Properties of a resource must be an object. Resource with id [NonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [ResourceWithoutType] is invalid. 'Type' is missing or not a string. Resource with id [UnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; valid values are: Read, Write. Resource with id [UnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided; valid combinations are: Read + Write.", + "errors": [ + { + "errorMessage": "Resource with id [NonDictConnector] is invalid. NonDictConnector should be a map." + }, + { + "errorMessage": "Resource with id [NonDictProperties] is invalid. Properties of a resource must be an object." + }, + { + "errorMessage": "Resource with id [EmptyProperties] is invalid. Properties of a resource must be an object." + }, + { + "errorMessage": "Resource with id [NoIdMissingType] is invalid. 'Type' is missing or not a string." + }, + { + "errorMessage": "Resource with id [NoStrId] is invalid. 'Id' is missing or not a string." + }, + { + "errorMessage": "Resource with id [NonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'." + }, + { + "errorMessage": "Resource with id [UnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; valid values are: Read, Write." + }, + { + "errorMessage": "Resource with id [NoDestination] is invalid. Missing required property 'Destination'." + }, + { + "errorMessage": "Resource with id [EmptyDestination] is invalid. Missing required property 'Destination'." + }, + { + "errorMessage": "Resource with id [NoPermissions] is invalid. Missing required property 'Permissions'." + }, + { + "errorMessage": "Resource with id [EmptyPermissions] is invalid. Missing required property 'Permissions'." + }, + { + "errorMessage": "Resource with id [EmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write." + }, + { + "errorMessage": "Resource with id [BothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties." + }, + { + "errorMessage": "Resource with id [MissingRole] is invalid. Unable to get IAM role name from 'Source' resource." + }, + { + "errorMessage": "Resource with id [ResourceWithoutType] is invalid. 'Type' is missing or not a string." + }, + { + "errorMessage": "Resource with id [MissingSnsTopicArn] is invalid. Destination.Arn is missing." + }, + { + "errorMessage": "Resource with id [MissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource." + }, + { + "errorMessage": "Resource with id [MissingSqsQueueUrl] is invalid. Unable to create connector from AWS::Events::Rule to AWS::SQS:Queue; it's not supported or the template is invalid." + }, + { + "errorMessage": "Resource with id [MissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource." + }, + { + "errorMessage": "Resource with id [UnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided; valid combinations are: Read + Write." + } + ] +} From b7e7f20793b40c01814770531b5460d962d95fbf Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Wed, 18 Jan 2023 13:38:16 -0800 Subject: [PATCH 11/25] change transformed connector logical id to source_logical_id + connector_logical_id --- samtranslator/translator/translator.py | 15 +- .../input/error_embedded_connectors.yaml | 8 +- .../embedded_connectors_api_to_function.json | 86 ++-- .../embedded_connectors_function_to.json | 400 +++++++++--------- .../embedded_connectors_hardcoded_props.json | 44 +- .../aws-cn/embedded_connectors_rule_to.json | 170 ++++---- .../aws-cn/embedded_connectors_sfn_to.json | 242 +++++------ .../aws-cn/embedded_connectors_sns_to.json | 8 +- ...embedded_connectors_table_to_function.json | 8 +- .../embedded_connectors_api_to_function.json | 86 ++-- .../embedded_connectors_function_to.json | 400 +++++++++--------- .../embedded_connectors_hardcoded_props.json | 44 +- .../embedded_connectors_rule_to.json | 170 ++++---- .../embedded_connectors_sfn_to.json | 242 +++++------ .../embedded_connectors_sns_to.json | 8 +- ...embedded_connectors_table_to_function.json | 8 +- .../embedded_connectors_api_to_function.json | 86 ++-- .../embedded_connectors_function_to.json | 400 +++++++++--------- .../embedded_connectors_hardcoded_props.json | 44 +- .../output/embedded_connectors_rule_to.json | 170 ++++---- .../output/embedded_connectors_sfn_to.json | 242 +++++------ .../output/embedded_connectors_sns_to.json | 8 +- ...embedded_connectors_table_to_function.json | 8 +- .../output/error_embedded_connectors.json | 42 +- 24 files changed, 1468 insertions(+), 1471 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 05431afd5..6ec0c8a44 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -274,7 +274,7 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors -def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[Exception]) -> None: +def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[Any]) -> None: """ Loops through the SAM Template resources to find any connectors that have been attached to the resources. Adds those attached connectors as Connector resources to the list of resources @@ -295,6 +295,9 @@ def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[ # Go through each of the connectors that have been attached and create a Serverless Connector resource for connector_logical_id, connector_dict in resource["Connectors"].items(): + # The logical id for the transformed connector will be + + connector_logical_id = source_logical_id + connector_logical_id + # can't use sam_expect since this is neither a property nor a resource attribute if not isinstance(connector_dict, dict): raise InvalidResourceException(connector_logical_id, f"{connector_logical_id} should be a map.") @@ -302,17 +305,11 @@ def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[ # mutates the connector_dict to make it a connector resource get_generated_connector(source_logical_id, connector_logical_id, connector_dict, document_errors) - # Make sure there are no other embedded connectors with the same logical id - if connector_logical_id in connectors: - raise DuplicateLogicalIdException( - connector_logical_id, connector_logical_id, connector_dict["Type"] - ) - connectors[connector_logical_id] = connector_dict # delete connectors key, so it doesn't show up in the transformed template del resource["Connectors"] - except (InvalidResourceException, DuplicateLogicalIdException) as e: + except InvalidResourceException as e: document_errors.append(e) # go through the list of generated connectors and add it to resources dict @@ -328,7 +325,7 @@ def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[ def get_generated_connector( - source_logical_id: str, connector_logical_id: str, connector: Dict[str, Any], document_errors: List[Exception] + source_logical_id: str, connector_logical_id: str, connector: Dict[str, Any], document_errors: List[Any] ) -> None: """ Adds the type, source id and any ResourceReference properties to the connector diff --git a/tests/translator/input/error_embedded_connectors.yaml b/tests/translator/input/error_embedded_connectors.yaml index 789d08385..7bf237301 100644 --- a/tests/translator/input/error_embedded_connectors.yaml +++ b/tests/translator/input/error_embedded_connectors.yaml @@ -131,12 +131,12 @@ Resources: Destination: Id: MyFunctionMissingRole Permissions: - - Read - - Write + - Read + - Write UnsupportedAccessCategoryCombination: Properties: Destination: Id: MyFunction Permissions: - - Write - Type: AWS::SQS::Queue \ No newline at end of file + - Write + Type: AWS::SQS::Queue diff --git a/tests/translator/output/aws-cn/embedded_connectors_api_to_function.json b/tests/translator/output/aws-cn/embedded_connectors_api_to_function.json index 3e1aee072..153c24f13 100644 --- a/tests/translator/output/aws-cn/embedded_connectors_api_to_function.json +++ b/tests/translator/output/aws-cn/embedded_connectors_api_to_function.json @@ -33,10 +33,10 @@ }, "Type": "AWS::ApiGatewayV2::Api" }, - "MyConnectorApiV2ToLambdaWriteLambdaPermission": { + "MyApiGatewayV2MyConnectorApiV2ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorApiV2ToLambda": { + "MyApiGatewayV2MyConnectorApiV2ToLambda": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -69,10 +69,47 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyConnectorApigwToLambdaWriteLambdaPermission": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyHttpApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": {}, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyHttpApiMyConnectorApigwToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorApigwToLambda": { + "MyHttpApiMyConnectorApigwToLambda": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -105,10 +142,10 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { + "MyHttpApiMyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorServerlessHttpApiToLambda": { + "MyHttpApiMyConnectorServerlessHttpApiToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -141,43 +178,6 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyFunction": { - "Properties": { - "Code": { - "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "MyRole", - "Arn" - ] - }, - "Runtime": "nodejs14.x" - }, - "Type": "AWS::Lambda::Function" - }, - "MyHttpApi": { - "Properties": { - "Body": { - "info": { - "title": { - "Ref": "AWS::StackName" - }, - "version": "1.0" - }, - "openapi": "3.0.1", - "paths": {}, - "tags": [ - { - "name": "httpapi:createdBy", - "x-amazon-apigateway-tag-value": "SAM" - } - ] - } - }, - "Type": "AWS::ApiGatewayV2::Api" - }, "MyHttpApiProdStage": { "Properties": { "ApiId": { diff --git a/tests/translator/output/aws-cn/embedded_connectors_function_to.json b/tests/translator/output/aws-cn/embedded_connectors_function_to.json index bee8eeaa3..4e5d36c96 100644 --- a/tests/translator/output/aws-cn/embedded_connectors_function_to.json +++ b/tests/translator/output/aws-cn/embedded_connectors_function_to.json @@ -1,108 +1,35 @@ { "Resources": { - "BucketConnectorPolicy": { - "Metadata": { - "aws:sam:connectors": { - "BucketConnector": { - "Destination": { - "Type": "AWS::S3::Bucket" - }, - "Source": { - "Type": "AWS::Serverless::Function" - } - } - } - }, + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyLambdaFunction": { "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "s3:GetObject", - "s3:GetObjectAcl", - "s3:GetObjectLegalHold", - "s3:GetObjectRetention", - "s3:GetObjectTorrent", - "s3:GetObjectVersion", - "s3:GetObjectVersionAcl", - "s3:GetObjectVersionForReplication", - "s3:GetObjectVersionTorrent", - "s3:ListBucket", - "s3:ListBucketMultipartUploads", - "s3:ListBucketVersions", - "s3:ListMultipartUploadParts" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - }, - { - "Fn::Sub": [ - "${DestinationArn}/*", - { - "DestinationArn": { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - } - } - ] - } - ] - }, - { - "Action": [ - "s3:AbortMultipartUpload", - "s3:DeleteObject", - "s3:DeleteObjectVersion", - "s3:PutObject", - "s3:PutObjectLegalHold", - "s3:PutObjectRetention", - "s3:RestoreObject" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - }, - { - "Fn::Sub": [ - "${DestinationArn}/*", - { - "DestinationArn": { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - } - } - ] - } - ] - } - ], - "Version": "2012-10-17" + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" }, - "Roles": [ - { - "Ref": "MyServerlessFunctionRole" + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } } - ] + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" }, - "Type": "AWS::IAM::ManagedPolicy" + "Type": "AWS::Lambda::Function" }, - "LambdaSQSConnectorPolicy": { + "MyLambdaFunctionLambdaSQSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaSQSConnector": { + "MyLambdaFunctionLambdaSQSConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, @@ -141,10 +68,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "LambdaTableConnectorPolicy": { + "MyLambdaFunctionLambdaTableConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaTableConnector": { + "MyLambdaFunctionLambdaTableConnector": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -233,10 +160,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "LambdaTableConnectorWithTableArnPolicy": { + "MyLambdaFunctionLambdaTableConnectorWithTableArnPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaTableConnectorWithTableArn": { + "MyLambdaFunctionLambdaTableConnectorWithTableArn": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -325,32 +252,6 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "MyBucket": { - "Type": "AWS::S3::Bucket" - }, - "MyLambdaFunction": { - "Properties": { - "Code": { - "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" - }, - "Environment": { - "Variables": { - "TABLE_NAME": { - "Ref": "MyTable" - } - } - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "MyRole", - "Arn" - ] - }, - "Runtime": "nodejs14.x" - }, - "Type": "AWS::Lambda::Function" - }, "MyQueue": { "Type": "AWS::SQS::Queue" }, @@ -395,64 +296,106 @@ }, "Type": "AWS::Lambda::Function" }, - "MyServerlessFunctionRole": { + "MyServerlessFunctionBucketConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionBucketConnector": { + "Destination": { + "Type": "AWS::S3::Bucket" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, "Properties": { - "AssumeRolePolicyDocument": { + "PolicyDocument": { "Statement": [ { "Action": [ - "sts:AssumeRole" + "s3:GetObject", + "s3:GetObjectAcl", + "s3:GetObjectLegalHold", + "s3:GetObjectRetention", + "s3:GetObjectTorrent", + "s3:GetObjectVersion", + "s3:GetObjectVersionAcl", + "s3:GetObjectVersionForReplication", + "s3:GetObjectVersionTorrent", + "s3:ListBucket", + "s3:ListBucketMultipartUploads", + "s3:ListBucketVersions", + "s3:ListMultipartUploadParts" ], "Effect": "Allow", - "Principal": { - "Service": [ - "lambda.amazonaws.com" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] } ], "Version": "2012-10-17" }, - "ManagedPolicyArns": [ - "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ], - "Tags": [ - { - "Key": "lambda:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::IAM::Role" - }, - "MyStateMachine": { - "Properties": { - "DefinitionString": { - "Fn::Join": [ - "\n", - [ - "{", - " \"StartAt\": \"MyLambdaState\"", - "}" - ] - ] - }, - "RoleArn": { - "Fn::GetAtt": [ - "MyStateMachineRole", - "Arn" - ] - }, - "Tags": [ + "Roles": [ { - "Key": "stateMachine:createdBy", - "Value": "SAM" + "Ref": "MyServerlessFunctionRole" } ] }, - "Type": "AWS::StepFunctions::StateMachine" + "Type": "AWS::IAM::ManagedPolicy" }, - "MyStateMachineRole": { + "MyServerlessFunctionRole": { "Properties": { "AssumeRolePolicyDocument": { "Statement": [ @@ -463,45 +406,29 @@ "Effect": "Allow", "Principal": { "Service": [ - "states.amazonaws.com" + "lambda.amazonaws.com" ] } } ], "Version": "2012-10-17" }, - "ManagedPolicyArns": [], + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], "Tags": [ { - "Key": "stateMachine:createdBy", + "Key": "lambda:createdBy", "Value": "SAM" } ] }, "Type": "AWS::IAM::Role" }, - "MyTable": { - "Properties": { - "AttributeDefinitions": [ - { - "AttributeName": "Id", - "AttributeType": "S" - } - ], - "BillingMode": "PAY_PER_REQUEST", - "KeySchema": [ - { - "AttributeName": "Id", - "KeyType": "HASH" - } - ] - }, - "Type": "AWS::DynamoDB::Table" - }, - "SFNConnectorPolicy": { + "MyServerlessFunctionSFNConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SFNConnector": { + "MyServerlessFunctionSFNConnector": { "Destination": { "Type": "AWS::Serverless::StateMachine" }, @@ -593,10 +520,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SNSConnectorPolicy": { + "MyServerlessFunctionSNSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SNSConnector": { + "MyServerlessFunctionSNSConnector": { "Destination": { "Type": "AWS::SNS::Topic" }, @@ -631,10 +558,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SQSConnectorPolicy": { + "MyServerlessFunctionSQSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SQSConnector": { + "MyServerlessFunctionSQSConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, @@ -690,10 +617,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorPolicy": { + "MyServerlessFunctionTableConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnector": { + "MyServerlessFunctionTableConnector": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -782,10 +709,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorWithTableArnPolicy": { + "MyServerlessFunctionTableConnectorWithTableArnPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorWithTableArn": { + "MyServerlessFunctionTableConnectorWithTableArn": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -873,6 +800,79 @@ ] }, "Type": "AWS::IAM::ManagedPolicy" + }, + "MyStateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ] + }, + "Type": "AWS::DynamoDB::Table" } } } diff --git a/tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json b/tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json index 3fce69fb3..d767d7095 100644 --- a/tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json +++ b/tests/translator/output/aws-cn/embedded_connectors_hardcoded_props.json @@ -1,9 +1,12 @@ { "Resources": { - "ApiV1ToLambdaWriteLambdaPermission": { + "MyApiV1": { + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiV1ApiV1ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "ApiV1ToLambda": { + "MyApiV1ApiV1ToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -36,10 +39,13 @@ }, "Type": "AWS::Lambda::Permission" }, - "ApiV2ToLambdaWriteLambdaPermission": { + "MyApiV2": { + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyApiV2ApiV2ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "ApiV2ToLambda": { + "MyApiV2ApiV2ToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -72,12 +78,6 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyApiV1": { - "Type": "AWS::ApiGateway::RestApi" - }, - "MyApiV2": { - "Type": "AWS::ApiGatewayV2::Api" - }, "MyFunction": { "Type": "AWS::Lambda::Function" }, @@ -90,16 +90,10 @@ "MyRule": { "Type": "AWS::Events::Rule" }, - "MySNSTopic": { - "Type": "AWS::SNS::Topic" - }, - "MyTopic": { - "Type": "AWS::SNS::Topic" - }, - "RuleToTopicTopicPolicy": { + "MyRuleRuleToTopicTopicPolicy": { "Metadata": { "aws:sam:connectors": { - "RuleToTopic": { + "MyRuleRuleToTopic": { "Destination": { "Type": "AWS::SNS::Topic" }, @@ -143,10 +137,13 @@ }, "Type": "AWS::SNS::TopicPolicy" }, - "TopicToLambdaHardcodedWriteLambdaPermission": { + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MySNSTopicTopicToLambdaHardcodedWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "TopicToLambdaHardcoded": { + "MySNSTopicTopicToLambdaHardcoded": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -171,10 +168,13 @@ }, "Type": "AWS::Lambda::Permission" }, - "TopicToQueueQueuePolicy": { + "MyTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyTopicTopicToQueueQueuePolicy": { "Metadata": { "aws:sam:connectors": { - "TopicToQueue": { + "MyTopicTopicToQueue": { "Destination": { "Type": "AWS::SQS::Queue" }, diff --git a/tests/translator/output/aws-cn/embedded_connectors_rule_to.json b/tests/translator/output/aws-cn/embedded_connectors_rule_to.json index b1d06c626..293438b3d 100644 --- a/tests/translator/output/aws-cn/embedded_connectors_rule_to.json +++ b/tests/translator/output/aws-cn/embedded_connectors_rule_to.json @@ -8,50 +8,41 @@ }, "Type": "AWS::Events::EventBus" }, - "MyConnectorToDefaultBusPolicy": { - "Metadata": { - "aws:sam:connectors": { - "MyConnectorToDefaultBus": { - "Destination": { - "Type": "AWS::Events::EventBus" - }, - "Source": { - "Type": "AWS::Events::Rule" - } - } - } - }, + "MyEventsRule1": { "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "events:PutEvents" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" - } - ] - } - ], - "Version": "2012-10-17" + "EventPattern": { + "source": [ + "aws.ec2" + ] }, - "Roles": [ + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ { - "Ref": "MyRuleRole" + "Arn": { + "Fn::GetAtt": [ + "StateMachine", + "Arn" + ] + }, + "Id": "StateMachine", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } } ] }, - "Type": "AWS::IAM::ManagedPolicy" + "Type": "AWS::Events::Rule" }, - "MyEVBusConnectorPolicy": { + "MyEventsRule1SfnConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "MyEVBusConnector": { + "MyEventsRule1SfnConnector": { "Destination": { - "Type": "AWS::Events::EventBus" + "Type": "AWS::Serverless::StateMachine" }, "Source": { "Type": "AWS::Events::Rule" @@ -64,15 +55,12 @@ "Statement": [ { "Action": [ - "events:PutEvents" + "states:StartExecution" ], "Effect": "Allow", "Resource": [ { - "Fn::GetAtt": [ - "EventBus", - "Arn" - ] + "Ref": "StateMachine" } ] } @@ -87,7 +75,7 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "MyEventsRule1": { + "MyEventsRule2": { "Properties": { "EventPattern": { "source": [ @@ -100,11 +88,11 @@ { "Arn": { "Fn::GetAtt": [ - "StateMachine", + "EventBus", "Arn" ] }, - "Id": "StateMachine", + "Id": "EventBus", "RoleArn": { "Fn::GetAtt": [ "MyRuleRole", @@ -116,34 +104,46 @@ }, "Type": "AWS::Events::Rule" }, - "MyEventsRule2": { - "Properties": { - "EventPattern": { - "source": [ - "aws.ec2" - ] - }, - "Name": "mynewabc", - "State": "ENABLED", - "Targets": [ - { - "Arn": { - "Fn::GetAtt": [ - "EventBus", - "Arn" - ] + "MyEventsRule2MyEVBusConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyEventsRule2MyEVBusConnector": { + "Destination": { + "Type": "AWS::Events::EventBus" }, - "Id": "EventBus", - "RoleArn": { - "Fn::GetAtt": [ - "MyRuleRole", - "Arn" + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + } ] } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" } ] }, - "Type": "AWS::Events::Rule" + "Type": "AWS::IAM::ManagedPolicy" }, "MyEventsRuleToDefaultBus": { "Properties": { @@ -171,28 +171,12 @@ }, "Type": "AWS::Events::Rule" }, - "MyRuleRole": { - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "events.amazonaws.com" - } - } - ] - } - }, - "Type": "AWS::IAM::Role" - }, - "SfnConnectorPolicy": { + "MyEventsRuleToDefaultBusMyConnectorToDefaultBusPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnConnector": { + "MyEventsRuleToDefaultBusMyConnectorToDefaultBus": { "Destination": { - "Type": "AWS::Serverless::StateMachine" + "Type": "AWS::Events::EventBus" }, "Source": { "Type": "AWS::Events::Rule" @@ -205,12 +189,12 @@ "Statement": [ { "Action": [ - "states:StartExecution" + "events:PutEvents" ], "Effect": "Allow", "Resource": [ { - "Ref": "StateMachine" + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" } ] } @@ -225,6 +209,22 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, "StateMachine": { "Properties": { "DefinitionString": { diff --git a/tests/translator/output/aws-cn/embedded_connectors_sfn_to.json b/tests/translator/output/aws-cn/embedded_connectors_sfn_to.json index 6e4c2ba96..0a77f1c15 100644 --- a/tests/translator/output/aws-cn/embedded_connectors_sfn_to.json +++ b/tests/translator/output/aws-cn/embedded_connectors_sfn_to.json @@ -54,7 +54,7 @@ }, "MyStateMachine": { "DependsOn": [ - "SfnToSfnPolicy" + "MyStateMachineSfnToSfnPolicy" ], "Properties": { "DefinitionString": { @@ -134,84 +134,10 @@ }, "Type": "AWS::IAM::Role" }, - "MyStateMachineWithoutPolicy": { - "Properties": { - "DefinitionString": { - "Fn::Join": [ - "\n", - [ - "{", - " \"StartAt\": \"TryDoSomething\",", - " \"States\": {", - " \"TryDoSomething\": {", - " \"End\": true,", - " \"Parameters\": {", - " \"FunctionName\": \"${definition_substitution_1}\"", - " },", - " \"Resource\": \"${definition_substitution_2}\",", - " \"Type\": \"Task\"", - " }", - " }", - "}" - ] - ] - }, - "DefinitionSubstitutions": { - "definition_substitution_1": { - "Ref": "MyFunction" - }, - "definition_substitution_2": { - "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" - } - }, - "RoleArn": { - "Fn::GetAtt": [ - "MyStateMachineWithoutPolicyRole", - "Arn" - ] - }, - "StateMachineType": "EXPRESS", - "Tags": [ - { - "Key": "stateMachine:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::StepFunctions::StateMachine" - }, - "MyStateMachineWithoutPolicyRole": { - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": [ - "sts:AssumeRole" - ], - "Effect": "Allow", - "Principal": { - "Service": [ - "states.amazonaws.com" - ] - } - } - ], - "Version": "2012-10-17" - }, - "ManagedPolicyArns": [], - "Tags": [ - { - "Key": "stateMachine:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::IAM::Role" - }, - "SfnToFunctionPolicy": { + "MyStateMachineSfnToFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnToFunction": { + "MyStateMachineSfnToFunction": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -250,52 +176,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SfnToFunctionWithoutPolicyPolicy": { - "Metadata": { - "aws:sam:connectors": { - "SfnToFunctionWithoutPolicy": { - "Destination": { - "Type": "AWS::Serverless::Function" - }, - "Source": { - "Type": "AWS::Serverless::StateMachine" - } - } - } - }, - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "lambda:InvokeAsync", - "lambda:InvokeFunction" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyFunction", - "Arn" - ] - } - ] - } - ], - "Version": "2012-10-17" - }, - "Roles": [ - { - "Ref": "MyStateMachineWithoutPolicyRole" - } - ] - }, - "Type": "AWS::IAM::ManagedPolicy" - }, - "SfnToSfnPolicy": { + "MyStateMachineSfnToSfnPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnToSfn": { + "MyStateMachineSfnToSfn": { "Destination": { "Type": "AWS::Serverless::StateMachine" }, @@ -394,6 +278,122 @@ ] }, "Type": "AWS::IAM::ManagedPolicy" + }, + "MyStateMachineWithoutPolicy": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"TryDoSomething\",", + " \"States\": {", + " \"TryDoSomething\": {", + " \"End\": true,", + " \"Parameters\": {", + " \"FunctionName\": \"${definition_substitution_1}\"", + " },", + " \"Resource\": \"${definition_substitution_2}\",", + " \"Type\": \"Task\"", + " }", + " }", + "}" + ] + ] + }, + "DefinitionSubstitutions": { + "definition_substitution_1": { + "Ref": "MyFunction" + }, + "definition_substitution_2": { + "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" + } + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicyRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineWithoutPolicyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyStateMachineWithoutPolicySfnToFunctionWithoutPolicyPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyStateMachineWithoutPolicySfnToFunctionWithoutPolicy": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineWithoutPolicyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" } } } diff --git a/tests/translator/output/aws-cn/embedded_connectors_sns_to.json b/tests/translator/output/aws-cn/embedded_connectors_sns_to.json index da5ba47ae..86ee346e9 100644 --- a/tests/translator/output/aws-cn/embedded_connectors_sns_to.json +++ b/tests/translator/output/aws-cn/embedded_connectors_sns_to.json @@ -58,10 +58,10 @@ "MySNSTopic": { "Type": "AWS::SNS::Topic" }, - "SnsToFunctionConnectorWriteLambdaPermission": { + "MySNSTopicSnsToFunctionConnectorWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "SnsToFunctionConnector": { + "MySNSTopicSnsToFunctionConnector": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -86,10 +86,10 @@ }, "Type": "AWS::Lambda::Permission" }, - "SnsToQueueConnectorQueuePolicy": { + "MySNSTopicSnsToQueueConnectorQueuePolicy": { "Metadata": { "aws:sam:connectors": { - "SnsToQueueConnector": { + "MySNSTopicSnsToQueueConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, diff --git a/tests/translator/output/aws-cn/embedded_connectors_table_to_function.json b/tests/translator/output/aws-cn/embedded_connectors_table_to_function.json index bb1cc4d09..d670efe22 100644 --- a/tests/translator/output/aws-cn/embedded_connectors_table_to_function.json +++ b/tests/translator/output/aws-cn/embedded_connectors_table_to_function.json @@ -112,10 +112,10 @@ }, "Type": "AWS::DynamoDB::Table" }, - "TableConnectorLambdaFunctionPolicy": { + "MyTableTableConnectorLambdaFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorLambdaFunction": { + "MyTableTableConnectorLambdaFunction": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -163,10 +163,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorServerlessFunctionPolicy": { + "MyTableTableConnectorServerlessFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorServerlessFunction": { + "MyTableTableConnectorServerlessFunction": { "Destination": { "Type": "AWS::Serverless::Function" }, diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_api_to_function.json b/tests/translator/output/aws-us-gov/embedded_connectors_api_to_function.json index 8d4726a98..d0911f336 100644 --- a/tests/translator/output/aws-us-gov/embedded_connectors_api_to_function.json +++ b/tests/translator/output/aws-us-gov/embedded_connectors_api_to_function.json @@ -33,10 +33,10 @@ }, "Type": "AWS::ApiGatewayV2::Api" }, - "MyConnectorApiV2ToLambdaWriteLambdaPermission": { + "MyApiGatewayV2MyConnectorApiV2ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorApiV2ToLambda": { + "MyApiGatewayV2MyConnectorApiV2ToLambda": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -69,10 +69,47 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyConnectorApigwToLambdaWriteLambdaPermission": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyHttpApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": {}, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyHttpApiMyConnectorApigwToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorApigwToLambda": { + "MyHttpApiMyConnectorApigwToLambda": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -105,10 +142,10 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { + "MyHttpApiMyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorServerlessHttpApiToLambda": { + "MyHttpApiMyConnectorServerlessHttpApiToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -141,43 +178,6 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyFunction": { - "Properties": { - "Code": { - "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "MyRole", - "Arn" - ] - }, - "Runtime": "nodejs14.x" - }, - "Type": "AWS::Lambda::Function" - }, - "MyHttpApi": { - "Properties": { - "Body": { - "info": { - "title": { - "Ref": "AWS::StackName" - }, - "version": "1.0" - }, - "openapi": "3.0.1", - "paths": {}, - "tags": [ - { - "name": "httpapi:createdBy", - "x-amazon-apigateway-tag-value": "SAM" - } - ] - } - }, - "Type": "AWS::ApiGatewayV2::Api" - }, "MyHttpApiProdStage": { "Properties": { "ApiId": { diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_function_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_function_to.json index 41389d83d..cca78d4de 100644 --- a/tests/translator/output/aws-us-gov/embedded_connectors_function_to.json +++ b/tests/translator/output/aws-us-gov/embedded_connectors_function_to.json @@ -1,108 +1,35 @@ { "Resources": { - "BucketConnectorPolicy": { - "Metadata": { - "aws:sam:connectors": { - "BucketConnector": { - "Destination": { - "Type": "AWS::S3::Bucket" - }, - "Source": { - "Type": "AWS::Serverless::Function" - } - } - } - }, + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyLambdaFunction": { "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "s3:GetObject", - "s3:GetObjectAcl", - "s3:GetObjectLegalHold", - "s3:GetObjectRetention", - "s3:GetObjectTorrent", - "s3:GetObjectVersion", - "s3:GetObjectVersionAcl", - "s3:GetObjectVersionForReplication", - "s3:GetObjectVersionTorrent", - "s3:ListBucket", - "s3:ListBucketMultipartUploads", - "s3:ListBucketVersions", - "s3:ListMultipartUploadParts" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - }, - { - "Fn::Sub": [ - "${DestinationArn}/*", - { - "DestinationArn": { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - } - } - ] - } - ] - }, - { - "Action": [ - "s3:AbortMultipartUpload", - "s3:DeleteObject", - "s3:DeleteObjectVersion", - "s3:PutObject", - "s3:PutObjectLegalHold", - "s3:PutObjectRetention", - "s3:RestoreObject" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - }, - { - "Fn::Sub": [ - "${DestinationArn}/*", - { - "DestinationArn": { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - } - } - ] - } - ] - } - ], - "Version": "2012-10-17" + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" }, - "Roles": [ - { - "Ref": "MyServerlessFunctionRole" + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } } - ] + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" }, - "Type": "AWS::IAM::ManagedPolicy" + "Type": "AWS::Lambda::Function" }, - "LambdaSQSConnectorPolicy": { + "MyLambdaFunctionLambdaSQSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaSQSConnector": { + "MyLambdaFunctionLambdaSQSConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, @@ -141,10 +68,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "LambdaTableConnectorPolicy": { + "MyLambdaFunctionLambdaTableConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaTableConnector": { + "MyLambdaFunctionLambdaTableConnector": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -233,10 +160,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "LambdaTableConnectorWithTableArnPolicy": { + "MyLambdaFunctionLambdaTableConnectorWithTableArnPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaTableConnectorWithTableArn": { + "MyLambdaFunctionLambdaTableConnectorWithTableArn": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -325,32 +252,6 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "MyBucket": { - "Type": "AWS::S3::Bucket" - }, - "MyLambdaFunction": { - "Properties": { - "Code": { - "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" - }, - "Environment": { - "Variables": { - "TABLE_NAME": { - "Ref": "MyTable" - } - } - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "MyRole", - "Arn" - ] - }, - "Runtime": "nodejs14.x" - }, - "Type": "AWS::Lambda::Function" - }, "MyQueue": { "Type": "AWS::SQS::Queue" }, @@ -395,64 +296,106 @@ }, "Type": "AWS::Lambda::Function" }, - "MyServerlessFunctionRole": { + "MyServerlessFunctionBucketConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionBucketConnector": { + "Destination": { + "Type": "AWS::S3::Bucket" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, "Properties": { - "AssumeRolePolicyDocument": { + "PolicyDocument": { "Statement": [ { "Action": [ - "sts:AssumeRole" + "s3:GetObject", + "s3:GetObjectAcl", + "s3:GetObjectLegalHold", + "s3:GetObjectRetention", + "s3:GetObjectTorrent", + "s3:GetObjectVersion", + "s3:GetObjectVersionAcl", + "s3:GetObjectVersionForReplication", + "s3:GetObjectVersionTorrent", + "s3:ListBucket", + "s3:ListBucketMultipartUploads", + "s3:ListBucketVersions", + "s3:ListMultipartUploadParts" ], "Effect": "Allow", - "Principal": { - "Service": [ - "lambda.amazonaws.com" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] } ], "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" - }, - "MyStateMachine": { - "Properties": { - "DefinitionString": { - "Fn::Join": [ - "\n", - [ - "{", - " \"StartAt\": \"MyLambdaState\"", - "}" - ] - ] - }, - "RoleArn": { - "Fn::GetAtt": [ - "MyStateMachineRole", - "Arn" - ] - }, - "Tags": [ + "Roles": [ { - "Key": "stateMachine:createdBy", - "Value": "SAM" + "Ref": "MyServerlessFunctionRole" } ] }, - "Type": "AWS::StepFunctions::StateMachine" + "Type": "AWS::IAM::ManagedPolicy" }, - "MyStateMachineRole": { + "MyServerlessFunctionRole": { "Properties": { "AssumeRolePolicyDocument": { "Statement": [ @@ -463,45 +406,29 @@ "Effect": "Allow", "Principal": { "Service": [ - "states.amazonaws.com" + "lambda.amazonaws.com" ] } } ], "Version": "2012-10-17" }, - "ManagedPolicyArns": [], + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], "Tags": [ { - "Key": "stateMachine:createdBy", + "Key": "lambda:createdBy", "Value": "SAM" } ] }, "Type": "AWS::IAM::Role" }, - "MyTable": { - "Properties": { - "AttributeDefinitions": [ - { - "AttributeName": "Id", - "AttributeType": "S" - } - ], - "BillingMode": "PAY_PER_REQUEST", - "KeySchema": [ - { - "AttributeName": "Id", - "KeyType": "HASH" - } - ] - }, - "Type": "AWS::DynamoDB::Table" - }, - "SFNConnectorPolicy": { + "MyServerlessFunctionSFNConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SFNConnector": { + "MyServerlessFunctionSFNConnector": { "Destination": { "Type": "AWS::Serverless::StateMachine" }, @@ -593,10 +520,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SNSConnectorPolicy": { + "MyServerlessFunctionSNSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SNSConnector": { + "MyServerlessFunctionSNSConnector": { "Destination": { "Type": "AWS::SNS::Topic" }, @@ -631,10 +558,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SQSConnectorPolicy": { + "MyServerlessFunctionSQSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SQSConnector": { + "MyServerlessFunctionSQSConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, @@ -690,10 +617,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorPolicy": { + "MyServerlessFunctionTableConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnector": { + "MyServerlessFunctionTableConnector": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -782,10 +709,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorWithTableArnPolicy": { + "MyServerlessFunctionTableConnectorWithTableArnPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorWithTableArn": { + "MyServerlessFunctionTableConnectorWithTableArn": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -873,6 +800,79 @@ ] }, "Type": "AWS::IAM::ManagedPolicy" + }, + "MyStateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ] + }, + "Type": "AWS::DynamoDB::Table" } } } diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json b/tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json index 3fce69fb3..d767d7095 100644 --- a/tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json +++ b/tests/translator/output/aws-us-gov/embedded_connectors_hardcoded_props.json @@ -1,9 +1,12 @@ { "Resources": { - "ApiV1ToLambdaWriteLambdaPermission": { + "MyApiV1": { + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiV1ApiV1ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "ApiV1ToLambda": { + "MyApiV1ApiV1ToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -36,10 +39,13 @@ }, "Type": "AWS::Lambda::Permission" }, - "ApiV2ToLambdaWriteLambdaPermission": { + "MyApiV2": { + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyApiV2ApiV2ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "ApiV2ToLambda": { + "MyApiV2ApiV2ToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -72,12 +78,6 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyApiV1": { - "Type": "AWS::ApiGateway::RestApi" - }, - "MyApiV2": { - "Type": "AWS::ApiGatewayV2::Api" - }, "MyFunction": { "Type": "AWS::Lambda::Function" }, @@ -90,16 +90,10 @@ "MyRule": { "Type": "AWS::Events::Rule" }, - "MySNSTopic": { - "Type": "AWS::SNS::Topic" - }, - "MyTopic": { - "Type": "AWS::SNS::Topic" - }, - "RuleToTopicTopicPolicy": { + "MyRuleRuleToTopicTopicPolicy": { "Metadata": { "aws:sam:connectors": { - "RuleToTopic": { + "MyRuleRuleToTopic": { "Destination": { "Type": "AWS::SNS::Topic" }, @@ -143,10 +137,13 @@ }, "Type": "AWS::SNS::TopicPolicy" }, - "TopicToLambdaHardcodedWriteLambdaPermission": { + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MySNSTopicTopicToLambdaHardcodedWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "TopicToLambdaHardcoded": { + "MySNSTopicTopicToLambdaHardcoded": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -171,10 +168,13 @@ }, "Type": "AWS::Lambda::Permission" }, - "TopicToQueueQueuePolicy": { + "MyTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyTopicTopicToQueueQueuePolicy": { "Metadata": { "aws:sam:connectors": { - "TopicToQueue": { + "MyTopicTopicToQueue": { "Destination": { "Type": "AWS::SQS::Queue" }, diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json index b1d06c626..293438b3d 100644 --- a/tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json +++ b/tests/translator/output/aws-us-gov/embedded_connectors_rule_to.json @@ -8,50 +8,41 @@ }, "Type": "AWS::Events::EventBus" }, - "MyConnectorToDefaultBusPolicy": { - "Metadata": { - "aws:sam:connectors": { - "MyConnectorToDefaultBus": { - "Destination": { - "Type": "AWS::Events::EventBus" - }, - "Source": { - "Type": "AWS::Events::Rule" - } - } - } - }, + "MyEventsRule1": { "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "events:PutEvents" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" - } - ] - } - ], - "Version": "2012-10-17" + "EventPattern": { + "source": [ + "aws.ec2" + ] }, - "Roles": [ + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ { - "Ref": "MyRuleRole" + "Arn": { + "Fn::GetAtt": [ + "StateMachine", + "Arn" + ] + }, + "Id": "StateMachine", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } } ] }, - "Type": "AWS::IAM::ManagedPolicy" + "Type": "AWS::Events::Rule" }, - "MyEVBusConnectorPolicy": { + "MyEventsRule1SfnConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "MyEVBusConnector": { + "MyEventsRule1SfnConnector": { "Destination": { - "Type": "AWS::Events::EventBus" + "Type": "AWS::Serverless::StateMachine" }, "Source": { "Type": "AWS::Events::Rule" @@ -64,15 +55,12 @@ "Statement": [ { "Action": [ - "events:PutEvents" + "states:StartExecution" ], "Effect": "Allow", "Resource": [ { - "Fn::GetAtt": [ - "EventBus", - "Arn" - ] + "Ref": "StateMachine" } ] } @@ -87,7 +75,7 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "MyEventsRule1": { + "MyEventsRule2": { "Properties": { "EventPattern": { "source": [ @@ -100,11 +88,11 @@ { "Arn": { "Fn::GetAtt": [ - "StateMachine", + "EventBus", "Arn" ] }, - "Id": "StateMachine", + "Id": "EventBus", "RoleArn": { "Fn::GetAtt": [ "MyRuleRole", @@ -116,34 +104,46 @@ }, "Type": "AWS::Events::Rule" }, - "MyEventsRule2": { - "Properties": { - "EventPattern": { - "source": [ - "aws.ec2" - ] - }, - "Name": "mynewabc", - "State": "ENABLED", - "Targets": [ - { - "Arn": { - "Fn::GetAtt": [ - "EventBus", - "Arn" - ] + "MyEventsRule2MyEVBusConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyEventsRule2MyEVBusConnector": { + "Destination": { + "Type": "AWS::Events::EventBus" }, - "Id": "EventBus", - "RoleArn": { - "Fn::GetAtt": [ - "MyRuleRole", - "Arn" + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + } ] } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" } ] }, - "Type": "AWS::Events::Rule" + "Type": "AWS::IAM::ManagedPolicy" }, "MyEventsRuleToDefaultBus": { "Properties": { @@ -171,28 +171,12 @@ }, "Type": "AWS::Events::Rule" }, - "MyRuleRole": { - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "events.amazonaws.com" - } - } - ] - } - }, - "Type": "AWS::IAM::Role" - }, - "SfnConnectorPolicy": { + "MyEventsRuleToDefaultBusMyConnectorToDefaultBusPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnConnector": { + "MyEventsRuleToDefaultBusMyConnectorToDefaultBus": { "Destination": { - "Type": "AWS::Serverless::StateMachine" + "Type": "AWS::Events::EventBus" }, "Source": { "Type": "AWS::Events::Rule" @@ -205,12 +189,12 @@ "Statement": [ { "Action": [ - "states:StartExecution" + "events:PutEvents" ], "Effect": "Allow", "Resource": [ { - "Ref": "StateMachine" + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" } ] } @@ -225,6 +209,22 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, "StateMachine": { "Properties": { "DefinitionString": { diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json index b2586e091..0b13e08b3 100644 --- a/tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json +++ b/tests/translator/output/aws-us-gov/embedded_connectors_sfn_to.json @@ -54,7 +54,7 @@ }, "MyStateMachine": { "DependsOn": [ - "SfnToSfnPolicy" + "MyStateMachineSfnToSfnPolicy" ], "Properties": { "DefinitionString": { @@ -134,84 +134,10 @@ }, "Type": "AWS::IAM::Role" }, - "MyStateMachineWithoutPolicy": { - "Properties": { - "DefinitionString": { - "Fn::Join": [ - "\n", - [ - "{", - " \"StartAt\": \"TryDoSomething\",", - " \"States\": {", - " \"TryDoSomething\": {", - " \"End\": true,", - " \"Parameters\": {", - " \"FunctionName\": \"${definition_substitution_1}\"", - " },", - " \"Resource\": \"${definition_substitution_2}\",", - " \"Type\": \"Task\"", - " }", - " }", - "}" - ] - ] - }, - "DefinitionSubstitutions": { - "definition_substitution_1": { - "Ref": "MyFunction" - }, - "definition_substitution_2": { - "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" - } - }, - "RoleArn": { - "Fn::GetAtt": [ - "MyStateMachineWithoutPolicyRole", - "Arn" - ] - }, - "StateMachineType": "EXPRESS", - "Tags": [ - { - "Key": "stateMachine:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::StepFunctions::StateMachine" - }, - "MyStateMachineWithoutPolicyRole": { - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": [ - "sts:AssumeRole" - ], - "Effect": "Allow", - "Principal": { - "Service": [ - "states.amazonaws.com" - ] - } - } - ], - "Version": "2012-10-17" - }, - "ManagedPolicyArns": [], - "Tags": [ - { - "Key": "stateMachine:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::IAM::Role" - }, - "SfnToFunctionPolicy": { + "MyStateMachineSfnToFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnToFunction": { + "MyStateMachineSfnToFunction": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -250,52 +176,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SfnToFunctionWithoutPolicyPolicy": { - "Metadata": { - "aws:sam:connectors": { - "SfnToFunctionWithoutPolicy": { - "Destination": { - "Type": "AWS::Serverless::Function" - }, - "Source": { - "Type": "AWS::Serverless::StateMachine" - } - } - } - }, - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "lambda:InvokeAsync", - "lambda:InvokeFunction" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyFunction", - "Arn" - ] - } - ] - } - ], - "Version": "2012-10-17" - }, - "Roles": [ - { - "Ref": "MyStateMachineWithoutPolicyRole" - } - ] - }, - "Type": "AWS::IAM::ManagedPolicy" - }, - "SfnToSfnPolicy": { + "MyStateMachineSfnToSfnPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnToSfn": { + "MyStateMachineSfnToSfn": { "Destination": { "Type": "AWS::Serverless::StateMachine" }, @@ -394,6 +278,122 @@ ] }, "Type": "AWS::IAM::ManagedPolicy" + }, + "MyStateMachineWithoutPolicy": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"TryDoSomething\",", + " \"States\": {", + " \"TryDoSomething\": {", + " \"End\": true,", + " \"Parameters\": {", + " \"FunctionName\": \"${definition_substitution_1}\"", + " },", + " \"Resource\": \"${definition_substitution_2}\",", + " \"Type\": \"Task\"", + " }", + " }", + "}" + ] + ] + }, + "DefinitionSubstitutions": { + "definition_substitution_1": { + "Ref": "MyFunction" + }, + "definition_substitution_2": { + "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" + } + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicyRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineWithoutPolicyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyStateMachineWithoutPolicySfnToFunctionWithoutPolicyPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyStateMachineWithoutPolicySfnToFunctionWithoutPolicy": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineWithoutPolicyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" } } } diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json b/tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json index 56d03a13c..f66dfbeae 100644 --- a/tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json +++ b/tests/translator/output/aws-us-gov/embedded_connectors_sns_to.json @@ -58,10 +58,10 @@ "MySNSTopic": { "Type": "AWS::SNS::Topic" }, - "SnsToFunctionConnectorWriteLambdaPermission": { + "MySNSTopicSnsToFunctionConnectorWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "SnsToFunctionConnector": { + "MySNSTopicSnsToFunctionConnector": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -86,10 +86,10 @@ }, "Type": "AWS::Lambda::Permission" }, - "SnsToQueueConnectorQueuePolicy": { + "MySNSTopicSnsToQueueConnectorQueuePolicy": { "Metadata": { "aws:sam:connectors": { - "SnsToQueueConnector": { + "MySNSTopicSnsToQueueConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json b/tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json index a5b7c523f..dbe33277d 100644 --- a/tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json +++ b/tests/translator/output/aws-us-gov/embedded_connectors_table_to_function.json @@ -112,10 +112,10 @@ }, "Type": "AWS::DynamoDB::Table" }, - "TableConnectorLambdaFunctionPolicy": { + "MyTableTableConnectorLambdaFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorLambdaFunction": { + "MyTableTableConnectorLambdaFunction": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -163,10 +163,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorServerlessFunctionPolicy": { + "MyTableTableConnectorServerlessFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorServerlessFunction": { + "MyTableTableConnectorServerlessFunction": { "Destination": { "Type": "AWS::Serverless::Function" }, diff --git a/tests/translator/output/embedded_connectors_api_to_function.json b/tests/translator/output/embedded_connectors_api_to_function.json index f7dc27e03..f542968e3 100644 --- a/tests/translator/output/embedded_connectors_api_to_function.json +++ b/tests/translator/output/embedded_connectors_api_to_function.json @@ -33,10 +33,10 @@ }, "Type": "AWS::ApiGatewayV2::Api" }, - "MyConnectorApiV2ToLambdaWriteLambdaPermission": { + "MyApiGatewayV2MyConnectorApiV2ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorApiV2ToLambda": { + "MyApiGatewayV2MyConnectorApiV2ToLambda": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -69,10 +69,47 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyConnectorApigwToLambdaWriteLambdaPermission": { + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" + }, + "Type": "AWS::Lambda::Function" + }, + "MyHttpApi": { + "Properties": { + "Body": { + "info": { + "title": { + "Ref": "AWS::StackName" + }, + "version": "1.0" + }, + "openapi": "3.0.1", + "paths": {}, + "tags": [ + { + "name": "httpapi:createdBy", + "x-amazon-apigateway-tag-value": "SAM" + } + ] + } + }, + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyHttpApiMyConnectorApigwToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorApigwToLambda": { + "MyHttpApiMyConnectorApigwToLambda": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -105,10 +142,10 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { + "MyHttpApiMyConnectorServerlessHttpApiToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "MyConnectorServerlessHttpApiToLambda": { + "MyHttpApiMyConnectorServerlessHttpApiToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -141,43 +178,6 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyFunction": { - "Properties": { - "Code": { - "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};" - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "MyRole", - "Arn" - ] - }, - "Runtime": "nodejs14.x" - }, - "Type": "AWS::Lambda::Function" - }, - "MyHttpApi": { - "Properties": { - "Body": { - "info": { - "title": { - "Ref": "AWS::StackName" - }, - "version": "1.0" - }, - "openapi": "3.0.1", - "paths": {}, - "tags": [ - { - "name": "httpapi:createdBy", - "x-amazon-apigateway-tag-value": "SAM" - } - ] - } - }, - "Type": "AWS::ApiGatewayV2::Api" - }, "MyHttpApiProdStage": { "Properties": { "ApiId": { diff --git a/tests/translator/output/embedded_connectors_function_to.json b/tests/translator/output/embedded_connectors_function_to.json index 78d54952f..33c9be734 100644 --- a/tests/translator/output/embedded_connectors_function_to.json +++ b/tests/translator/output/embedded_connectors_function_to.json @@ -1,108 +1,35 @@ { "Resources": { - "BucketConnectorPolicy": { - "Metadata": { - "aws:sam:connectors": { - "BucketConnector": { - "Destination": { - "Type": "AWS::S3::Bucket" - }, - "Source": { - "Type": "AWS::Serverless::Function" - } - } - } - }, + "MyBucket": { + "Type": "AWS::S3::Bucket" + }, + "MyLambdaFunction": { "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "s3:GetObject", - "s3:GetObjectAcl", - "s3:GetObjectLegalHold", - "s3:GetObjectRetention", - "s3:GetObjectTorrent", - "s3:GetObjectVersion", - "s3:GetObjectVersionAcl", - "s3:GetObjectVersionForReplication", - "s3:GetObjectVersionTorrent", - "s3:ListBucket", - "s3:ListBucketMultipartUploads", - "s3:ListBucketVersions", - "s3:ListMultipartUploadParts" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - }, - { - "Fn::Sub": [ - "${DestinationArn}/*", - { - "DestinationArn": { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - } - } - ] - } - ] - }, - { - "Action": [ - "s3:AbortMultipartUpload", - "s3:DeleteObject", - "s3:DeleteObjectVersion", - "s3:PutObject", - "s3:PutObjectLegalHold", - "s3:PutObjectRetention", - "s3:RestoreObject" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - }, - { - "Fn::Sub": [ - "${DestinationArn}/*", - { - "DestinationArn": { - "Fn::GetAtt": [ - "MyBucket", - "Arn" - ] - } - } - ] - } - ] - } - ], - "Version": "2012-10-17" + "Code": { + "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" }, - "Roles": [ - { - "Ref": "MyServerlessFunctionRole" + "Environment": { + "Variables": { + "TABLE_NAME": { + "Ref": "MyTable" + } } - ] + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "MyRole", + "Arn" + ] + }, + "Runtime": "nodejs14.x" }, - "Type": "AWS::IAM::ManagedPolicy" + "Type": "AWS::Lambda::Function" }, - "LambdaSQSConnectorPolicy": { + "MyLambdaFunctionLambdaSQSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaSQSConnector": { + "MyLambdaFunctionLambdaSQSConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, @@ -141,10 +68,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "LambdaTableConnectorPolicy": { + "MyLambdaFunctionLambdaTableConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaTableConnector": { + "MyLambdaFunctionLambdaTableConnector": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -233,10 +160,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "LambdaTableConnectorWithTableArnPolicy": { + "MyLambdaFunctionLambdaTableConnectorWithTableArnPolicy": { "Metadata": { "aws:sam:connectors": { - "LambdaTableConnectorWithTableArn": { + "MyLambdaFunctionLambdaTableConnectorWithTableArn": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -325,32 +252,6 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "MyBucket": { - "Type": "AWS::S3::Bucket" - }, - "MyLambdaFunction": { - "Properties": { - "Code": { - "ZipFile": "const AWS = require('aws-sdk');\nexports.handler = async (event) => {\n console.log(JSON.stringify(event));\n};\n" - }, - "Environment": { - "Variables": { - "TABLE_NAME": { - "Ref": "MyTable" - } - } - }, - "Handler": "index.handler", - "Role": { - "Fn::GetAtt": [ - "MyRole", - "Arn" - ] - }, - "Runtime": "nodejs14.x" - }, - "Type": "AWS::Lambda::Function" - }, "MyQueue": { "Type": "AWS::SQS::Queue" }, @@ -395,64 +296,106 @@ }, "Type": "AWS::Lambda::Function" }, - "MyServerlessFunctionRole": { + "MyServerlessFunctionBucketConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyServerlessFunctionBucketConnector": { + "Destination": { + "Type": "AWS::S3::Bucket" + }, + "Source": { + "Type": "AWS::Serverless::Function" + } + } + } + }, "Properties": { - "AssumeRolePolicyDocument": { + "PolicyDocument": { "Statement": [ { "Action": [ - "sts:AssumeRole" + "s3:GetObject", + "s3:GetObjectAcl", + "s3:GetObjectLegalHold", + "s3:GetObjectRetention", + "s3:GetObjectTorrent", + "s3:GetObjectVersion", + "s3:GetObjectVersionAcl", + "s3:GetObjectVersionForReplication", + "s3:GetObjectVersionTorrent", + "s3:ListBucket", + "s3:ListBucketMultipartUploads", + "s3:ListBucketVersions", + "s3:ListMultipartUploadParts" ], "Effect": "Allow", - "Principal": { - "Service": [ - "lambda.amazonaws.com" - ] - } + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] + }, + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:DeleteObject", + "s3:DeleteObjectVersion", + "s3:PutObject", + "s3:PutObjectLegalHold", + "s3:PutObjectRetention", + "s3:RestoreObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + }, + { + "Fn::Sub": [ + "${DestinationArn}/*", + { + "DestinationArn": { + "Fn::GetAtt": [ + "MyBucket", + "Arn" + ] + } + } + ] + } + ] } ], "Version": "2012-10-17" }, - "ManagedPolicyArns": [ - "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ], - "Tags": [ - { - "Key": "lambda:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::IAM::Role" - }, - "MyStateMachine": { - "Properties": { - "DefinitionString": { - "Fn::Join": [ - "\n", - [ - "{", - " \"StartAt\": \"MyLambdaState\"", - "}" - ] - ] - }, - "RoleArn": { - "Fn::GetAtt": [ - "MyStateMachineRole", - "Arn" - ] - }, - "Tags": [ + "Roles": [ { - "Key": "stateMachine:createdBy", - "Value": "SAM" + "Ref": "MyServerlessFunctionRole" } ] }, - "Type": "AWS::StepFunctions::StateMachine" + "Type": "AWS::IAM::ManagedPolicy" }, - "MyStateMachineRole": { + "MyServerlessFunctionRole": { "Properties": { "AssumeRolePolicyDocument": { "Statement": [ @@ -463,45 +406,29 @@ "Effect": "Allow", "Principal": { "Service": [ - "states.amazonaws.com" + "lambda.amazonaws.com" ] } } ], "Version": "2012-10-17" }, - "ManagedPolicyArns": [], + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ], "Tags": [ { - "Key": "stateMachine:createdBy", + "Key": "lambda:createdBy", "Value": "SAM" } ] }, "Type": "AWS::IAM::Role" }, - "MyTable": { - "Properties": { - "AttributeDefinitions": [ - { - "AttributeName": "Id", - "AttributeType": "S" - } - ], - "BillingMode": "PAY_PER_REQUEST", - "KeySchema": [ - { - "AttributeName": "Id", - "KeyType": "HASH" - } - ] - }, - "Type": "AWS::DynamoDB::Table" - }, - "SFNConnectorPolicy": { + "MyServerlessFunctionSFNConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SFNConnector": { + "MyServerlessFunctionSFNConnector": { "Destination": { "Type": "AWS::Serverless::StateMachine" }, @@ -593,10 +520,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SNSConnectorPolicy": { + "MyServerlessFunctionSNSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SNSConnector": { + "MyServerlessFunctionSNSConnector": { "Destination": { "Type": "AWS::SNS::Topic" }, @@ -631,10 +558,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SQSConnectorPolicy": { + "MyServerlessFunctionSQSConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "SQSConnector": { + "MyServerlessFunctionSQSConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, @@ -690,10 +617,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorPolicy": { + "MyServerlessFunctionTableConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnector": { + "MyServerlessFunctionTableConnector": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -782,10 +709,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorWithTableArnPolicy": { + "MyServerlessFunctionTableConnectorWithTableArnPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorWithTableArn": { + "MyServerlessFunctionTableConnectorWithTableArn": { "Destination": { "Type": "AWS::DynamoDB::Table" }, @@ -873,6 +800,79 @@ ] }, "Type": "AWS::IAM::ManagedPolicy" + }, + "MyStateMachine": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"MyLambdaState\"", + "}" + ] + ] + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineRole", + "Arn" + ] + }, + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyTable": { + "Properties": { + "AttributeDefinitions": [ + { + "AttributeName": "Id", + "AttributeType": "S" + } + ], + "BillingMode": "PAY_PER_REQUEST", + "KeySchema": [ + { + "AttributeName": "Id", + "KeyType": "HASH" + } + ] + }, + "Type": "AWS::DynamoDB::Table" } } } diff --git a/tests/translator/output/embedded_connectors_hardcoded_props.json b/tests/translator/output/embedded_connectors_hardcoded_props.json index 3fce69fb3..d767d7095 100644 --- a/tests/translator/output/embedded_connectors_hardcoded_props.json +++ b/tests/translator/output/embedded_connectors_hardcoded_props.json @@ -1,9 +1,12 @@ { "Resources": { - "ApiV1ToLambdaWriteLambdaPermission": { + "MyApiV1": { + "Type": "AWS::ApiGateway::RestApi" + }, + "MyApiV1ApiV1ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "ApiV1ToLambda": { + "MyApiV1ApiV1ToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -36,10 +39,13 @@ }, "Type": "AWS::Lambda::Permission" }, - "ApiV2ToLambdaWriteLambdaPermission": { + "MyApiV2": { + "Type": "AWS::ApiGatewayV2::Api" + }, + "MyApiV2ApiV2ToLambdaWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "ApiV2ToLambda": { + "MyApiV2ApiV2ToLambda": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -72,12 +78,6 @@ }, "Type": "AWS::Lambda::Permission" }, - "MyApiV1": { - "Type": "AWS::ApiGateway::RestApi" - }, - "MyApiV2": { - "Type": "AWS::ApiGatewayV2::Api" - }, "MyFunction": { "Type": "AWS::Lambda::Function" }, @@ -90,16 +90,10 @@ "MyRule": { "Type": "AWS::Events::Rule" }, - "MySNSTopic": { - "Type": "AWS::SNS::Topic" - }, - "MyTopic": { - "Type": "AWS::SNS::Topic" - }, - "RuleToTopicTopicPolicy": { + "MyRuleRuleToTopicTopicPolicy": { "Metadata": { "aws:sam:connectors": { - "RuleToTopic": { + "MyRuleRuleToTopic": { "Destination": { "Type": "AWS::SNS::Topic" }, @@ -143,10 +137,13 @@ }, "Type": "AWS::SNS::TopicPolicy" }, - "TopicToLambdaHardcodedWriteLambdaPermission": { + "MySNSTopic": { + "Type": "AWS::SNS::Topic" + }, + "MySNSTopicTopicToLambdaHardcodedWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "TopicToLambdaHardcoded": { + "MySNSTopicTopicToLambdaHardcoded": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -171,10 +168,13 @@ }, "Type": "AWS::Lambda::Permission" }, - "TopicToQueueQueuePolicy": { + "MyTopic": { + "Type": "AWS::SNS::Topic" + }, + "MyTopicTopicToQueueQueuePolicy": { "Metadata": { "aws:sam:connectors": { - "TopicToQueue": { + "MyTopicTopicToQueue": { "Destination": { "Type": "AWS::SQS::Queue" }, diff --git a/tests/translator/output/embedded_connectors_rule_to.json b/tests/translator/output/embedded_connectors_rule_to.json index b1d06c626..293438b3d 100644 --- a/tests/translator/output/embedded_connectors_rule_to.json +++ b/tests/translator/output/embedded_connectors_rule_to.json @@ -8,50 +8,41 @@ }, "Type": "AWS::Events::EventBus" }, - "MyConnectorToDefaultBusPolicy": { - "Metadata": { - "aws:sam:connectors": { - "MyConnectorToDefaultBus": { - "Destination": { - "Type": "AWS::Events::EventBus" - }, - "Source": { - "Type": "AWS::Events::Rule" - } - } - } - }, + "MyEventsRule1": { "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "events:PutEvents" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" - } - ] - } - ], - "Version": "2012-10-17" + "EventPattern": { + "source": [ + "aws.ec2" + ] }, - "Roles": [ + "Name": "mynewabc", + "State": "ENABLED", + "Targets": [ { - "Ref": "MyRuleRole" + "Arn": { + "Fn::GetAtt": [ + "StateMachine", + "Arn" + ] + }, + "Id": "StateMachine", + "RoleArn": { + "Fn::GetAtt": [ + "MyRuleRole", + "Arn" + ] + } } ] }, - "Type": "AWS::IAM::ManagedPolicy" + "Type": "AWS::Events::Rule" }, - "MyEVBusConnectorPolicy": { + "MyEventsRule1SfnConnectorPolicy": { "Metadata": { "aws:sam:connectors": { - "MyEVBusConnector": { + "MyEventsRule1SfnConnector": { "Destination": { - "Type": "AWS::Events::EventBus" + "Type": "AWS::Serverless::StateMachine" }, "Source": { "Type": "AWS::Events::Rule" @@ -64,15 +55,12 @@ "Statement": [ { "Action": [ - "events:PutEvents" + "states:StartExecution" ], "Effect": "Allow", "Resource": [ { - "Fn::GetAtt": [ - "EventBus", - "Arn" - ] + "Ref": "StateMachine" } ] } @@ -87,7 +75,7 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "MyEventsRule1": { + "MyEventsRule2": { "Properties": { "EventPattern": { "source": [ @@ -100,11 +88,11 @@ { "Arn": { "Fn::GetAtt": [ - "StateMachine", + "EventBus", "Arn" ] }, - "Id": "StateMachine", + "Id": "EventBus", "RoleArn": { "Fn::GetAtt": [ "MyRuleRole", @@ -116,34 +104,46 @@ }, "Type": "AWS::Events::Rule" }, - "MyEventsRule2": { - "Properties": { - "EventPattern": { - "source": [ - "aws.ec2" - ] - }, - "Name": "mynewabc", - "State": "ENABLED", - "Targets": [ - { - "Arn": { - "Fn::GetAtt": [ - "EventBus", - "Arn" - ] + "MyEventsRule2MyEVBusConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyEventsRule2MyEVBusConnector": { + "Destination": { + "Type": "AWS::Events::EventBus" }, - "Id": "EventBus", - "RoleArn": { - "Fn::GetAtt": [ - "MyRuleRole", - "Arn" + "Source": { + "Type": "AWS::Events::Rule" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "events:PutEvents" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "EventBus", + "Arn" + ] + } ] } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyRuleRole" } ] }, - "Type": "AWS::Events::Rule" + "Type": "AWS::IAM::ManagedPolicy" }, "MyEventsRuleToDefaultBus": { "Properties": { @@ -171,28 +171,12 @@ }, "Type": "AWS::Events::Rule" }, - "MyRuleRole": { - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": { - "Service": "events.amazonaws.com" - } - } - ] - } - }, - "Type": "AWS::IAM::Role" - }, - "SfnConnectorPolicy": { + "MyEventsRuleToDefaultBusMyConnectorToDefaultBusPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnConnector": { + "MyEventsRuleToDefaultBusMyConnectorToDefaultBus": { "Destination": { - "Type": "AWS::Serverless::StateMachine" + "Type": "AWS::Events::EventBus" }, "Source": { "Type": "AWS::Events::Rule" @@ -205,12 +189,12 @@ "Statement": [ { "Action": [ - "states:StartExecution" + "events:PutEvents" ], "Effect": "Allow", "Resource": [ { - "Ref": "StateMachine" + "Fn::Sub": "arn:${AWS::Partition}:events:${AWS::Region}:${AWS::AccountId}:event-bus/default" } ] } @@ -225,6 +209,22 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, + "MyRuleRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ] + } + }, + "Type": "AWS::IAM::Role" + }, "StateMachine": { "Properties": { "DefinitionString": { diff --git a/tests/translator/output/embedded_connectors_sfn_to.json b/tests/translator/output/embedded_connectors_sfn_to.json index 4eeae87b6..8c1ab68bf 100644 --- a/tests/translator/output/embedded_connectors_sfn_to.json +++ b/tests/translator/output/embedded_connectors_sfn_to.json @@ -54,7 +54,7 @@ }, "MyStateMachine": { "DependsOn": [ - "SfnToSfnPolicy" + "MyStateMachineSfnToSfnPolicy" ], "Properties": { "DefinitionString": { @@ -134,84 +134,10 @@ }, "Type": "AWS::IAM::Role" }, - "MyStateMachineWithoutPolicy": { - "Properties": { - "DefinitionString": { - "Fn::Join": [ - "\n", - [ - "{", - " \"StartAt\": \"TryDoSomething\",", - " \"States\": {", - " \"TryDoSomething\": {", - " \"End\": true,", - " \"Parameters\": {", - " \"FunctionName\": \"${definition_substitution_1}\"", - " },", - " \"Resource\": \"${definition_substitution_2}\",", - " \"Type\": \"Task\"", - " }", - " }", - "}" - ] - ] - }, - "DefinitionSubstitutions": { - "definition_substitution_1": { - "Ref": "MyFunction" - }, - "definition_substitution_2": { - "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" - } - }, - "RoleArn": { - "Fn::GetAtt": [ - "MyStateMachineWithoutPolicyRole", - "Arn" - ] - }, - "StateMachineType": "EXPRESS", - "Tags": [ - { - "Key": "stateMachine:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::StepFunctions::StateMachine" - }, - "MyStateMachineWithoutPolicyRole": { - "Properties": { - "AssumeRolePolicyDocument": { - "Statement": [ - { - "Action": [ - "sts:AssumeRole" - ], - "Effect": "Allow", - "Principal": { - "Service": [ - "states.amazonaws.com" - ] - } - } - ], - "Version": "2012-10-17" - }, - "ManagedPolicyArns": [], - "Tags": [ - { - "Key": "stateMachine:createdBy", - "Value": "SAM" - } - ] - }, - "Type": "AWS::IAM::Role" - }, - "SfnToFunctionPolicy": { + "MyStateMachineSfnToFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnToFunction": { + "MyStateMachineSfnToFunction": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -250,52 +176,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "SfnToFunctionWithoutPolicyPolicy": { - "Metadata": { - "aws:sam:connectors": { - "SfnToFunctionWithoutPolicy": { - "Destination": { - "Type": "AWS::Serverless::Function" - }, - "Source": { - "Type": "AWS::Serverless::StateMachine" - } - } - } - }, - "Properties": { - "PolicyDocument": { - "Statement": [ - { - "Action": [ - "lambda:InvokeAsync", - "lambda:InvokeFunction" - ], - "Effect": "Allow", - "Resource": [ - { - "Fn::GetAtt": [ - "MyFunction", - "Arn" - ] - } - ] - } - ], - "Version": "2012-10-17" - }, - "Roles": [ - { - "Ref": "MyStateMachineWithoutPolicyRole" - } - ] - }, - "Type": "AWS::IAM::ManagedPolicy" - }, - "SfnToSfnPolicy": { + "MyStateMachineSfnToSfnPolicy": { "Metadata": { "aws:sam:connectors": { - "SfnToSfn": { + "MyStateMachineSfnToSfn": { "Destination": { "Type": "AWS::Serverless::StateMachine" }, @@ -394,6 +278,122 @@ ] }, "Type": "AWS::IAM::ManagedPolicy" + }, + "MyStateMachineWithoutPolicy": { + "Properties": { + "DefinitionString": { + "Fn::Join": [ + "\n", + [ + "{", + " \"StartAt\": \"TryDoSomething\",", + " \"States\": {", + " \"TryDoSomething\": {", + " \"End\": true,", + " \"Parameters\": {", + " \"FunctionName\": \"${definition_substitution_1}\"", + " },", + " \"Resource\": \"${definition_substitution_2}\",", + " \"Type\": \"Task\"", + " }", + " }", + "}" + ] + ] + }, + "DefinitionSubstitutions": { + "definition_substitution_1": { + "Ref": "MyFunction" + }, + "definition_substitution_2": { + "Fn::Sub": "arn:${AWS::Partition}:states:::lambda:invoke" + } + }, + "RoleArn": { + "Fn::GetAtt": [ + "MyStateMachineWithoutPolicyRole", + "Arn" + ] + }, + "StateMachineType": "EXPRESS", + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::StepFunctions::StateMachine" + }, + "MyStateMachineWithoutPolicyRole": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": [ + "sts:AssumeRole" + ], + "Effect": "Allow", + "Principal": { + "Service": [ + "states.amazonaws.com" + ] + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [], + "Tags": [ + { + "Key": "stateMachine:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::IAM::Role" + }, + "MyStateMachineWithoutPolicySfnToFunctionWithoutPolicyPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyStateMachineWithoutPolicySfnToFunctionWithoutPolicy": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::Serverless::StateMachine" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "lambda:InvokeAsync", + "lambda:InvokeFunction" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyFunction", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyStateMachineWithoutPolicyRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" } } } diff --git a/tests/translator/output/embedded_connectors_sns_to.json b/tests/translator/output/embedded_connectors_sns_to.json index 6fc5f2872..6e316b6e9 100644 --- a/tests/translator/output/embedded_connectors_sns_to.json +++ b/tests/translator/output/embedded_connectors_sns_to.json @@ -58,10 +58,10 @@ "MySNSTopic": { "Type": "AWS::SNS::Topic" }, - "SnsToFunctionConnectorWriteLambdaPermission": { + "MySNSTopicSnsToFunctionConnectorWriteLambdaPermission": { "Metadata": { "aws:sam:connectors": { - "SnsToFunctionConnector": { + "MySNSTopicSnsToFunctionConnector": { "Destination": { "Type": "AWS::Serverless::Function" }, @@ -86,10 +86,10 @@ }, "Type": "AWS::Lambda::Permission" }, - "SnsToQueueConnectorQueuePolicy": { + "MySNSTopicSnsToQueueConnectorQueuePolicy": { "Metadata": { "aws:sam:connectors": { - "SnsToQueueConnector": { + "MySNSTopicSnsToQueueConnector": { "Destination": { "Type": "AWS::SQS::Queue" }, diff --git a/tests/translator/output/embedded_connectors_table_to_function.json b/tests/translator/output/embedded_connectors_table_to_function.json index 498b2c152..a2ad1fbfa 100644 --- a/tests/translator/output/embedded_connectors_table_to_function.json +++ b/tests/translator/output/embedded_connectors_table_to_function.json @@ -112,10 +112,10 @@ }, "Type": "AWS::DynamoDB::Table" }, - "TableConnectorLambdaFunctionPolicy": { + "MyTableTableConnectorLambdaFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorLambdaFunction": { + "MyTableTableConnectorLambdaFunction": { "Destination": { "Type": "AWS::Lambda::Function" }, @@ -163,10 +163,10 @@ }, "Type": "AWS::IAM::ManagedPolicy" }, - "TableConnectorServerlessFunctionPolicy": { + "MyTableTableConnectorServerlessFunctionPolicy": { "Metadata": { "aws:sam:connectors": { - "TableConnectorServerlessFunction": { + "MyTableTableConnectorServerlessFunction": { "Destination": { "Type": "AWS::Serverless::Function" }, diff --git a/tests/translator/output/error_embedded_connectors.json b/tests/translator/output/error_embedded_connectors.json index 3e20628e6..e270795a0 100644 --- a/tests/translator/output/error_embedded_connectors.json +++ b/tests/translator/output/error_embedded_connectors.json @@ -1,65 +1,65 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 20. Resource with id [BothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties. Resource with id [EmptyDestination] is invalid. Missing required property 'Destination'. Resource with id [EmptyPermissions] is invalid. Missing required property 'Permissions'. Resource with id [EmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write. Resource with id [EmptyProperties] is invalid. Properties of a resource must be an object. Resource with id [MissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource. Resource with id [MissingRole] is invalid. Unable to get IAM role name from 'Source' resource. Resource with id [MissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource. Resource with id [MissingSnsTopicArn] is invalid. Destination.Arn is missing. Resource with id [MissingSqsQueueUrl] 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 [NoDestination] is invalid. Missing required property 'Destination'. Resource with id [NoIdMissingType] is invalid. 'Type' is missing or not a string. Resource with id [NoPermissions] is invalid. Missing required property 'Permissions'. Resource with id [NoStrId] is invalid. 'Id' is missing or not a string. Resource with id [NonDictConnector] is invalid. NonDictConnector should be a map. Resource with id [NonDictProperties] is invalid. Properties of a resource must be an object. Resource with id [NonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [ResourceWithoutType] is invalid. 'Type' is missing or not a string. Resource with id [UnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; valid values are: Read, Write. Resource with id [UnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided; valid combinations are: Read + Write.", + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 20. 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 [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 [MyFunctionEmptyProperties] is invalid. Properties of a resource must be an object. 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. 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 [MyFunctionNonDictProperties] is invalid. Properties of a resource must be an object. Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; 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; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string.", "errors": [ { - "errorMessage": "Resource with id [NonDictConnector] is invalid. NonDictConnector should be a map." + "errorMessage": "Resource with id [MyFunctionNoDictConnectorNonDictConnector] is invalid. MyFunctionNoDictConnectorNonDictConnector should be a map." }, { - "errorMessage": "Resource with id [NonDictProperties] is invalid. Properties of a resource must be an object." + "errorMessage": "Resource with id [MyFunctionNonDictProperties] is invalid. Properties of a resource must be an object." }, { - "errorMessage": "Resource with id [EmptyProperties] is invalid. Properties of a resource must be an object." + "errorMessage": "Resource with id [MyFunctionEmptyProperties] is invalid. Properties of a resource must be an object." }, { - "errorMessage": "Resource with id [NoIdMissingType] is invalid. 'Type' is missing or not a string." + "errorMessage": "Resource with id [MyFunctionNoIdMissingType] is invalid. 'Type' is missing or not a string." }, { - "errorMessage": "Resource with id [NoStrId] is invalid. 'Id' is missing or not a string." + "errorMessage": "Resource with id [MyFunctionNoStrId] is invalid. 'Id' is missing or not a string." }, { - "errorMessage": "Resource with id [NonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'." + "errorMessage": "Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'." }, { - "errorMessage": "Resource with id [UnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; valid values are: Read, Write." + "errorMessage": "Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; valid values are: Read, Write." }, { - "errorMessage": "Resource with id [NoDestination] is invalid. Missing required property 'Destination'." + "errorMessage": "Resource with id [MyFunctionNoDestination] is invalid. Missing required property 'Destination'." }, { - "errorMessage": "Resource with id [EmptyDestination] is invalid. Missing required property 'Destination'." + "errorMessage": "Resource with id [MyFunctionEmptyDestination] is invalid. Missing required property 'Destination'." }, { - "errorMessage": "Resource with id [NoPermissions] is invalid. Missing required property 'Permissions'." + "errorMessage": "Resource with id [MyFunctionNoPermissions] is invalid. Missing required property 'Permissions'." }, { - "errorMessage": "Resource with id [EmptyPermissions] is invalid. Missing required property 'Permissions'." + "errorMessage": "Resource with id [MyFunctionEmptyPermissions] is invalid. Missing required property 'Permissions'." }, { - "errorMessage": "Resource with id [EmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write." + "errorMessage": "Resource with id [MyFunctionEmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write." }, { - "errorMessage": "Resource with id [BothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties." + "errorMessage": "Resource with id [MyFunctionBothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties." }, { - "errorMessage": "Resource with id [MissingRole] is invalid. Unable to get IAM role name from 'Source' resource." + "errorMessage": "Resource with id [MyFunctionMissingRoleMissingRole] is invalid. Unable to get IAM role name from 'Source' resource." }, { - "errorMessage": "Resource with id [ResourceWithoutType] is invalid. 'Type' is missing or not a string." + "errorMessage": "Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string." }, { - "errorMessage": "Resource with id [MissingSnsTopicArn] is invalid. Destination.Arn is missing." + "errorMessage": "Resource with id [EventsRuleMissingSnsTopicArn] is invalid. Destination.Arn is missing." }, { - "errorMessage": "Resource with id [MissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource." + "errorMessage": "Resource with id [EventsRuleMissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource." }, { - "errorMessage": "Resource with id [MissingSqsQueueUrl] is invalid. Unable to create connector from AWS::Events::Rule to AWS::SQS:Queue; it's not supported or the template is invalid." + "errorMessage": "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." }, { - "errorMessage": "Resource with id [MissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource." + "errorMessage": "Resource with id [MyQueueMissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource." }, { - "errorMessage": "Resource with id [UnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided; valid combinations are: Read + Write." + "errorMessage": "Resource with id [MyQueueUnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided; valid combinations are: Read + Write." } ] } From 639f499d25ee5151bb9f602fd3cf8f563d07d0f4 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Thu, 19 Jan 2023 11:32:41 -0800 Subject: [PATCH 12/25] integration test + address feedback --- integration/combination/test_connectors.py | 1 + .../combination/embedded_connector.json | 22 ++++++ .../combination/embedded_connector.yaml | 72 +++++++++++++++++++ samtranslator/schema/unified.schema.json | 15 ++++ samtranslator/translator/translator.py | 42 +++++------ 5 files changed, 131 insertions(+), 21 deletions(-) create mode 100644 integration/resources/expected/combination/embedded_connector.json create mode 100644 integration/resources/templates/combination/embedded_connector.yaml diff --git a/integration/combination/test_connectors.py b/integration/combination/test_connectors.py index 1efed2521..18ae75f70 100644 --- a/integration/combination/test_connectors.py +++ b/integration/combination/test_connectors.py @@ -47,6 +47,7 @@ def tearDown(self): ("combination/connector_sqs_to_function",), ("combination/connector_sns_to_function_write",), ("combination/connector_table_to_function_read",), + ("combination/embedded_connector",), ] ) @retry_once diff --git a/integration/resources/expected/combination/embedded_connector.json b/integration/resources/expected/combination/embedded_connector.json new file mode 100644 index 000000000..927a18df2 --- /dev/null +++ b/integration/resources/expected/combination/embedded_connector.json @@ -0,0 +1,22 @@ +[ + { + "LogicalResourceId": "MyRole1", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "MyRole2", + "ResourceType": "AWS::IAM::Role" + }, + { + "LogicalResourceId": "TriggerFunction", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "MyFunction2", + "ResourceType": "AWS::Lambda::Function" + }, + { + "LogicalResourceId": "MyConnectorPolicy", + "ResourceType": "AWS::IAM::ManagedPolicy" + } +] diff --git a/integration/resources/templates/combination/embedded_connector.yaml b/integration/resources/templates/combination/embedded_connector.yaml new file mode 100644 index 000000000..b19f57862 --- /dev/null +++ b/integration/resources/templates/combination/embedded_connector.yaml @@ -0,0 +1,72 @@ +Resources: + MyRole1: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: lambda.amazonaws.com + ManagedPolicyArns: + - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + + MyRole2: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Statement: + - Effect: Allow + Action: sts:AssumeRole + Principal: + Service: lambda.amazonaws.com + ManagedPolicyArns: + - !Sub arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole + + TriggerFunction: + Type: AWS::Lambda::Function + Connectors: + MyConnector: + Properties: + Destination: + Id: MyFunction2 + Permissions: + - Write + Properties: + Role: !GetAtt MyRole1.Arn + Runtime: nodejs14.x + Handler: index.handler + Code: + ZipFile: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + const params = { + FunctionName: process.env.FUNCTION_NAME, + InvocationType: 'RequestResponse', + Payload: '{}', + }; + const lambda = new AWS.Lambda(); + const response = await lambda.invoke(params).promise(); + if(response.StatusCode !== 200){ + throw new Error('Failed to get response from lambda function') + } + return response; + }; + Environment: + Variables: + FUNCTION_NAME: !Ref MyFunction2 + + MyFunction2: + Type: AWS::Lambda::Function + Properties: + Role: !GetAtt MyRole2.Arn + Runtime: nodejs14.x + Handler: index.handler + Code: + ZipFile: | + const AWS = require('aws-sdk'); + exports.handler = async (event) => { + console.log(JSON.stringify(event)); + }; +Metadata: + SamTransformTest: true diff --git a/samtranslator/schema/unified.schema.json b/samtranslator/schema/unified.schema.json index 0a87d273e..5a6625fe7 100644 --- a/samtranslator/schema/unified.schema.json +++ b/samtranslator/schema/unified.schema.json @@ -156319,6 +156319,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "DeletionPolicy": { "title": "Deletionpolicy" }, @@ -157520,6 +157523,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "DeletionPolicy": { "title": "Deletionpolicy" }, @@ -158180,6 +158186,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "Metadata": { "title": "Metadata" }, @@ -158374,6 +158383,9 @@ "samtranslator__schema__aws_serverless_simpletable__Resource": { "additionalProperties": false, "properties": { + "Connectors": { + "title": "Connectors" + }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" }, @@ -158804,6 +158816,9 @@ "Condition": { "title": "Condition" }, + "Connectors": { + "title": "Connectors" + }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" }, diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 6ec0c8a44..621df6a3a 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -128,7 +128,7 @@ def translate( self.sam_parser.parse(sam_template=sam_template, parameter_values=parameter_values, sam_plugins=sam_plugins) document_errors: List[Any] = [] - add_embedded_connectors(sam_template=sam_template, document_errors=document_errors) + _add_embedded_connectors(sam_template=sam_template, document_errors=document_errors) template = copy.deepcopy(sam_template) macro_resolver = ResourceTypeResolver(sam_resources) @@ -274,7 +274,7 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors -def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[Any]) -> None: +def _add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[Any]) -> None: """ Loops through the SAM Template resources to find any connectors that have been attached to the resources. Adds those attached connectors as Connector resources to the list of resources @@ -286,31 +286,31 @@ def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[ # Loop through the resources in the template and see if any connectors have been attached for source_logical_id, resource in resources.items(): - if "Connectors" in resource: - try: - sam_expect( - resource["Connectors"], source_logical_id, "Connectors", is_resource_attribute=True - ).to_be_a_map() + if "Connectors" not in resource: + continue + try: + sam_expect( + resource["Connectors"], source_logical_id, "Connectors", is_resource_attribute=True + ).to_be_a_map() - # Go through each of the connectors that have been attached and create a Serverless Connector resource - for connector_logical_id, connector_dict in resource["Connectors"].items(): + for connector_logical_id, connector_dict in resource["Connectors"].items(): - # The logical id for the transformed connector will be + - connector_logical_id = source_logical_id + connector_logical_id + # The logical id for the transformed connector will be + + connector_logical_id = source_logical_id + connector_logical_id - # can't use sam_expect since this is neither a property nor a resource attribute - if not isinstance(connector_dict, dict): - raise InvalidResourceException(connector_logical_id, f"{connector_logical_id} should be a map.") + # can't use sam_expect since this is neither a property nor a resource attribute + if not isinstance(connector_dict, dict): + raise InvalidResourceException(connector_logical_id, f"{connector_logical_id} should be a map.") - # mutates the connector_dict to make it a connector resource - get_generated_connector(source_logical_id, connector_logical_id, connector_dict, document_errors) + # mutates the connector_dict to make it a connector resource + _get_generated_connector(source_logical_id, connector_logical_id, connector_dict, document_errors) - connectors[connector_logical_id] = connector_dict + connectors[connector_logical_id] = connector_dict # delete connectors key, so it doesn't show up in the transformed template - del resource["Connectors"] - except InvalidResourceException as e: - document_errors.append(e) + del resource["Connectors"] + except InvalidResourceException as e: + document_errors.append(e) # go through the list of generated connectors and add it to resources dict for connector_logical_id, connector_dict in connectors.items(): @@ -324,7 +324,7 @@ def add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[ resources[connector_logical_id] = connector_dict -def get_generated_connector( +def _get_generated_connector( source_logical_id: str, connector_logical_id: str, connector: Dict[str, Any], document_errors: List[Any] ) -> None: """ From 5009404f926dae47203ef3b162a12591556ac629 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Fri, 20 Jan 2023 17:18:59 -0800 Subject: [PATCH 13/25] schema changes --- MANIFEST.in | 2 + Makefile | 8 +- samtranslator/schema/aws_serverless_api.py | 2 +- .../schema/aws_serverless_function.py | 2 +- .../schema/aws_serverless_simpletable.py | 2 +- .../schema/aws_serverless_statemachine.py | 2 +- samtranslator/schema/sam.schema.json | 7092 + samtranslator/schema/schema.json | 167107 ++++++++++++++- tests/schema/test_validate_schema.py | 39 +- 9 files changed, 168986 insertions(+), 5270 deletions(-) create mode 100644 samtranslator/schema/sam.schema.json diff --git a/MANIFEST.in b/MANIFEST.in index e8f4a9238..4e2a9eba8 100755 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,6 +7,8 @@ include samtranslator/policy_templates_data/schema.json include samtranslator/model/connector_profiles/profiles.json include samtranslator/schema/docs.json include samtranslator/schema/schema.json +include samtranslator/schema/sam.schema.json +include samtranslator/schema/cloudformation.schema.json include README.md include THIRD_PARTY_LICENSES diff --git a/Makefile b/Makefile index 8e928409e..e9bb8b513 100755 --- a/Makefile +++ b/Makefile @@ -26,9 +26,9 @@ black: black-check: # Checking latest schema was generated (run `make schema` if this fails) mkdir -p .tmp - python samtranslator/schema/schema.py --sam-schema .tmp/sam.schema.json --cfn-schema samtranslator/schema/cloudformation.schema.json --unified-schema .tmp/unified.schema.json - diff -u samtranslator/schema/schema.json .tmp/sam.schema.json - diff -u samtranslator/schema/unified.schema.json .tmp/unified.schema.json + python samtranslator/schema/schema.py --sam-schema .tmp/sam.schema.json --cfn-schema samtranslator/schema/cloudformation.schema.json --unified-schema .tmp/schema.json + diff -u samtranslator/schema/sam.schema.json .tmp/sam.schema.json + diff -u samtranslator/schema/schema.json .tmp/schema.json black --check setup.py samtranslator/* tests/* integration/* bin/*.py bin/json-format.py --check tests integration samtranslator/policy_templates_data bin/yaml-format.py --check tests @@ -49,7 +49,7 @@ update-cfn-schema: curl -o samtranslator/schema/cloudformation.schema.json https://raw.githubusercontent.com/awslabs/goformation/master/schema/cloudformation.schema.json schema: - python samtranslator/schema/schema.py --sam-schema samtranslator/schema/schema.json --cfn-schema samtranslator/schema/cloudformation.schema.json --unified-schema samtranslator/schema/unified.schema.json + python samtranslator/schema/schema.py --sam-schema samtranslator/schema/sam.schema.json --cfn-schema samtranslator/schema/cloudformation.schema.json --unified-schema samtranslator/schema/schema.json # Command to run everytime you make changes to verify everything works dev: test diff --git a/samtranslator/schema/aws_serverless_api.py b/samtranslator/schema/aws_serverless_api.py index 9bf48415d..e1b78f5e0 100644 --- a/samtranslator/schema/aws_serverless_api.py +++ b/samtranslator/schema/aws_serverless_api.py @@ -221,4 +221,4 @@ class Resource(BaseModel): UpdatePolicy: Optional[PassThroughProp] UpdateReplacePolicy: Optional[PassThroughProp] DependsOn: Optional[PassThroughProp] - Metadata: Optional[PassThroughProp] \ No newline at end of file + Metadata: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_function.py b/samtranslator/schema/aws_serverless_function.py index c9ce69ee0..6c272dd04 100644 --- a/samtranslator/schema/aws_serverless_function.py +++ b/samtranslator/schema/aws_serverless_function.py @@ -549,4 +549,4 @@ class Resource(BaseModel): UpdateReplacePolicy: Optional[PassThroughProp] Condition: Optional[PassThroughProp] DependsOn: Optional[PassThroughProp] - Metadata: Optional[PassThroughProp] \ No newline at end of file + Metadata: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_simpletable.py b/samtranslator/schema/aws_serverless_simpletable.py index 0fc1ab2b6..39ee10b74 100644 --- a/samtranslator/schema/aws_serverless_simpletable.py +++ b/samtranslator/schema/aws_serverless_simpletable.py @@ -33,4 +33,4 @@ class Globals(BaseModel): class Resource(BaseModel): Type: Literal["AWS::Serverless::SimpleTable"] Properties: Optional[Properties] - Connectors: Optional[PassThrough] + Connectors: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_statemachine.py b/samtranslator/schema/aws_serverless_statemachine.py index 755190f00..3808adbba 100644 --- a/samtranslator/schema/aws_serverless_statemachine.py +++ b/samtranslator/schema/aws_serverless_statemachine.py @@ -165,4 +165,4 @@ class Resource(BaseModel): Type: Literal["AWS::Serverless::StateMachine"] Properties: Properties Condition: Optional[PassThroughProp] - Connectors: Optional[PassThroughProp] \ No newline at end of file + Connectors: Optional[PassThroughProp] diff --git a/samtranslator/schema/sam.schema.json b/samtranslator/schema/sam.schema.json new file mode 100644 index 000000000..b6396510b --- /dev/null +++ b/samtranslator/schema/sam.schema.json @@ -0,0 +1,7092 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "definitions": { + "AlexaSkillEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "AlexaSkillEvent", + "type": "object" + }, + "AlexaSkillEventProperties": { + "additionalProperties": false, + "properties": { + "SkillId": { + "description": "The Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\. \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 Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\. \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": "SkillId", + "type": "string" + } + }, + "title": "AlexaSkillEventProperties", + "type": "object" + }, + "ApiAuth": { + "additionalProperties": false, + "properties": { + "ApiKeyRequired": { + "description": "Requires an API key for this API, path, and method\\. \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": "Requires an API key for this API, path, and method\\. \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": "ApiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "description": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Authorizer": { + "description": "The `Authorizer` for a specific Function \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific Function \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "type": "string" + }, + "InvokeRole": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\. \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.", + "markdownDescription": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\. \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.", + "title": "InvokeRole" + }, + "ResourcePolicy": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ResourcePolicy" + } + ], + "description": "Configure Resource Policy for this path on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configure Resource Policy for this path on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ResourcePolicy" + } + }, + "title": "ApiAuth", + "type": "object" + }, + "CloudWatchLogsEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CloudWatchLogsEvent", + "type": "object" + }, + "CloudWatchLogsEventProperties": { + "additionalProperties": false, + "properties": { + "FilterPattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "markdownDescription": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "title": "FilterPattern" + }, + "LogGroupName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "markdownDescription": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "title": "LogGroupName" + } + }, + "required": [ + "FilterPattern", + "LogGroupName" + ], + "title": "CloudWatchLogsEventProperties", + "type": "object" + }, + "CodeUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Bucket" + }, + "Key": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon S3 key of the deployment package\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "The Amazon S3 key of the deployment package\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "Key" + }, + "Version": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "For versioned objects, the version of the deployment package object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "For versioned objects, the version of the deployment package object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "Version" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "CodeUri", + "type": "object" + }, + "CognitoAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/CognitoAuthorizerIdentity" + } + ], + "description": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Identity" + }, + "UserPoolArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer \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": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer \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": "UserPoolArn" + } + }, + "required": [ + "UserPoolArn" + ], + "title": "CognitoAuthorizer", + "type": "object" + }, + "CognitoAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Header": { + "description": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Header", + "type": "string" + }, + "ReauthorizeEvery": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery" + }, + "ValidationExpression": { + "description": "Specify a validation expression for validating the incoming Identity \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": "Specify a validation expression for validating the incoming Identity \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": "ValidationExpression", + "type": "string" + } + }, + "title": "CognitoAuthorizerIdentity", + "type": "object" + }, + "CognitoEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CognitoEvent", + "type": "object" + }, + "CognitoEventProperties": { + "additionalProperties": false, + "properties": { + "Trigger": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Lambda trigger configuration information for the new user pool\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.", + "markdownDescription": "The Lambda trigger configuration information for the new user pool\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.", + "title": "Trigger" + }, + "UserPool": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Reference to UserPool defined in the same template \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": "Reference to UserPool defined in the same template \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": "UserPool" + } + }, + "required": [ + "Trigger", + "UserPool" + ], + "title": "CognitoEventProperties", + "type": "object" + }, + "ContentUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 bucket of the layer archive\\. \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-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "markdownDescription": "The Amazon S3 bucket of the layer archive\\. \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-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "title": "Bucket" + }, + "Key": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 key of the layer archive\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "markdownDescription": "The Amazon S3 key of the layer archive\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "title": "Key" + }, + "Version": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "For versioned objects, the version of the layer archive object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "markdownDescription": "For versioned objects, the version of the layer archive object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "title": "Version" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "ContentUri", + "type": "object" + }, + "Cors": { + "additionalProperties": false, + "properties": { + "AllowCredentials": { + "description": "Boolean indicating whether request is allowed to contain credentials\\. \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": "Boolean indicating whether request is allowed to contain credentials\\. \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": "AllowCredentials", + "type": "boolean" + }, + "AllowHeaders": { + "description": "String of headers to allow\\. \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": "String of headers to allow\\. \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": "AllowHeaders", + "type": "string" + }, + "AllowMethods": { + "description": "String containing the HTTP methods to allow\\. \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": "String containing the HTTP methods to allow\\. \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": "AllowMethods", + "type": "string" + }, + "AllowOrigin": { + "description": "String of origin to allow\\. \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": "String of origin to allow\\. \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": "AllowOrigin", + "type": "string" + }, + "MaxAge": { + "description": "String containing the number of seconds to cache CORS Preflight request\\. \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": "String containing the number of seconds to cache CORS Preflight request\\. \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": "MaxAge", + "type": "string" + } + }, + "required": [ + "AllowOrigin" + ], + "title": "Cors", + "type": "object" + }, + "DeadLetterQueue": { + "additionalProperties": false, + "properties": { + "TargetArn": { + "description": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.", + "title": "TargetArn", + "type": "string" + }, + "Type": { + "description": "The type of dead letter queue\\. \n*Valid values*: `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", + "SQS" + ], + "markdownDescription": "The type of dead letter queue\\. \n*Valid values*: `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" + } + }, + "required": [ + "TargetArn", + "Type" + ], + "title": "DeadLetterQueue", + "type": "object" + }, + "DeploymentPreference": { + "additionalProperties": false, + "properties": { + "Alarms": { + "anyOf": [ + { + "type": "object" + }, + { + "items": { + "type": "object" + }, + "type": "array" + } + ], + "description": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\. \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\. \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\\.", + "markdownDescription": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\. \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\. \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\\.", + "title": "Alarms" + }, + "Enabled": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "boolean" + } + ], + "description": "Whether this deployment preference is enabled\\. \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": "Whether this deployment preference is enabled\\. \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\\.", + "title": "Enabled" + }, + "Hooks": { + "allOf": [ + { + "$ref": "#/definitions/Hooks" + } + ], + "description": "Validation Lambda functions that are run before and after traffic shifting\\. \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Validation Lambda functions that are run before and after traffic shifting\\. \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Hooks" + }, + "PassthroughCondition": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "boolean" + } + ], + "description": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to 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": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to 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": "PassthroughCondition" + }, + "Role": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\. \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": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\. \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": "Role" + }, + "TriggerConfigurations": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "TriggerConfigurations" + }, + "Type": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Type" + } + }, + "title": "DeploymentPreference", + "type": "object" + }, + "DynamoDBEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "DynamoDBEvent", + "type": "object" + }, + "DynamoDBEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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`", + "markdownDescription": "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`", + "title": "BatchSize" + }, + "BisectBatchOnFunctionError": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BisectBatchOnFunctionError" + }, + "DestinationConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "DestinationConfig" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "FunctionResponseTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "FunctionResponseTypes" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "MaximumRecordAgeInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRecordAgeInSeconds" + }, + "MaximumRetryAttempts": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRetryAttempts" + }, + "ParallelizationFactor": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ParallelizationFactor" + }, + "StartingPosition": { + "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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": { + "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" + }, + "Stream": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the DynamoDB stream\\. \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 DynamoDB stream\\. \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": "Stream" + }, + "TumblingWindowInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "TumblingWindowInSeconds" + } + }, + "required": [ + "StartingPosition", + "Stream" + ], + "title": "DynamoDBEventProperties", + "type": "object" + }, + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The endpoint type of a REST API\\. \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "markdownDescription": "The endpoint type of a REST API\\. \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "title": "Type" + }, + "VPCEndpointIds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "markdownDescription": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "title": "VPCEndpointIds" + } + }, + "title": "EndpointConfiguration", + "type": "object" + }, + "EventInvokeConfig": { + "additionalProperties": false, + "properties": { + "DestinationConfig": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeDestinationConfig" + } + ], + "description": "A configuration object that specifies the destination of an event after Lambda processes it\\. \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.", + "markdownDescription": "A configuration object that specifies the destination of an event after Lambda processes it\\. \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.", + "title": "DestinationConfig" + }, + "MaximumEventAgeInSeconds": { + "description": "The maximum age of a request that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "markdownDescription": "The maximum age of a request that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "title": "MaximumEventAgeInSeconds", + "type": "integer" + }, + "MaximumRetryAttempts": { + "description": "The maximum number of times to retry before the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "markdownDescription": "The maximum number of times to retry before the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "title": "MaximumRetryAttempts", + "type": "integer" + } + }, + "title": "EventInvokeConfig", + "type": "object" + }, + "EventInvokeDestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeOnFailure" + } + ], + "description": "A destination for events that failed processing\\. \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.", + "markdownDescription": "A destination for events that failed processing\\. \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.", + "title": "OnFailure" + }, + "OnSuccess": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeOnSuccess" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "OnSuccess" + } + }, + "title": "EventInvokeDestinationConfig", + "type": "object" + }, + "EventInvokeOnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "title": "Destination" + }, + "Type": { + "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "enum": [ + "SQS", + "SNS", + "Lambda", + "EventBridge" + ], + "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "title": "Type", + "type": "string" + } + }, + "title": "EventInvokeOnFailure", + "type": "object" + }, + "EventInvokeOnSuccess": { + "additionalProperties": false, + "properties": { + "Destination": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \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#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \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#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "title": "Destination" + }, + "Type": { + "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "enum": [ + "SQS", + "SNS", + "Lambda", + "EventBridge" + ], + "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "title": "Type", + "type": "string" + } + }, + "title": "EventInvokeOnSuccess", + "type": "object" + }, + "EventsScheduleProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "title": "Description" + }, + "Enabled": { + "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "title": "Enabled", + "type": "boolean" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "title": "Name" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Schedule": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "title": "Schedule" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "title": "State" + } + }, + "title": "EventsScheduleProperties", + "type": "object" + }, + "FunctionUrlConfig": { + "additionalProperties": false, + "properties": { + "AuthType": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide* \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.", + "markdownDescription": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide* \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.", + "title": "AuthType" + }, + "Cors": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\. \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.", + "markdownDescription": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\. \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.", + "title": "Cors" + } + }, + "required": [ + "AuthType" + ], + "title": "FunctionUrlConfig", + "type": "object" + }, + "Hooks": { + "additionalProperties": false, + "properties": { + "PostTraffic": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Lambda function that is run after traffic shifting\\. \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": "Lambda function that is run after traffic shifting\\. \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": "PostTraffic" + }, + "PreTraffic": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Lambda function that is run before traffic shifting\\. \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": "Lambda function that is run before traffic shifting\\. \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": "PreTraffic" + } + }, + "title": "Hooks", + "type": "object" + }, + "HttpApiAuth": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "The authorization scopes to apply to this API, path, and method\\. \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\. \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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Authorizer": { + "description": "The `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\. \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\. \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "type": "string" + } + }, + "title": "HttpApiAuth", + "type": "object" + }, + "HttpApiEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "HttpApiEvent", + "type": "object" + }, + "HttpApiEventProperties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\. \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\. \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\. \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": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\. \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\. \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\. \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": "ApiId" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/HttpApiAuth" + } + ], + "description": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\. \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\. \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "Method": { + "description": "HTTP method for which this function is invoked\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "HTTP method for which this function is invoked\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Method", + "type": "string" + }, + "Path": { + "description": "Uri path for which this function is invoked\\. Must start with `/`\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Uri path for which this function is invoked\\. Must start with `/`\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Path", + "type": "string" + }, + "PayloadFormatVersion": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specifies the format of the payload sent to an integration\\. \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: String \n*Required*: No \n*Default*: 2\\.0 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies the format of the payload sent to an integration\\. \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: String \n*Required*: No \n*Default*: 2\\.0 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "PayloadFormatVersion" + }, + "RouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\. \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\. \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "RouteSettings" + }, + "TimeoutInMillis": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "Custom timeout between 50 and 29,000 milliseconds\\. \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: Integer \n*Required*: No \n*Default*: 5000 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds\\. \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: Integer \n*Required*: No \n*Default*: 5000 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "TimeoutInMillis" + } + }, + "title": "HttpApiEventProperties", + "type": "object" + }, + "IoTRuleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "IoTRuleEvent", + "type": "object" + }, + "IoTRuleEventProperties": { + "additionalProperties": false, + "properties": { + "AwsIotSqlVersion": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The version of the SQL rules engine to use when evaluating the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "markdownDescription": "The version of the SQL rules engine to use when evaluating the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "title": "AwsIotSqlVersion" + }, + "Sql": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "markdownDescription": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "title": "Sql" + } + }, + "required": [ + "Sql" + ], + "title": "IoTRuleEventProperties", + "type": "object" + }, + "KinesisEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "KinesisEvent", + "type": "object" + }, + "KinesisEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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*: `10000`", + "markdownDescription": "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*: `10000`", + "title": "BatchSize" + }, + "BisectBatchOnFunctionError": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BisectBatchOnFunctionError" + }, + "DestinationConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "DestinationConfig" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "FunctionResponseTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "FunctionResponseTypes" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "MaximumRecordAgeInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRecordAgeInSeconds" + }, + "MaximumRetryAttempts": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRetryAttempts" + }, + "ParallelizationFactor": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ParallelizationFactor" + }, + "StartingPosition": { + "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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": { + "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" + }, + "Stream": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\. \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 data stream or a stream consumer\\. \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": "Stream" + }, + "TumblingWindowInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "TumblingWindowInSeconds" + } + }, + "required": [ + "StartingPosition", + "Stream" + ], + "title": "KinesisEventProperties", + "type": "object" + }, + "LambdaAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizerPayloadFormatVersion": { + "anyOf": [ + { + "enum": [ + "1.0", + "2.0" + ], + "type": "string" + }, + { + "type": "number" + } + ], + "description": "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\\.", + "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" + }, + "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\\.", + "title": "EnableSimpleResponses", + "type": "boolean" + }, + "FunctionArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\. \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \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 Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\. \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \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": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\. \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\. \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 ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\. \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\. \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": "FunctionInvokeRole" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/LambdaAuthorizerIdentity" + } + ], + "description": "Specifies an `IdentitySource` in an incoming request for an authorizer\\. \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies an `IdentitySource` in an incoming request for an authorizer\\. \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Identity" + } + }, + "required": [ + "AuthorizerPayloadFormatVersion", + "FunctionArn" + ], + "title": "LambdaAuthorizer", + "type": "object" + }, + "LambdaAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Context": { + "description": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\. \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\\.", + "title": "Context", + "type": "array" + }, + "Headers": { + "description": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\. \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\\.", + "title": "Headers", + "type": "array" + }, + "QueryStrings": { + "description": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\. \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\\.", + "title": "QueryStrings", + "type": "array" + }, + "ReauthorizeEvery": { + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery", + "type": "integer" + }, + "StageVariables": { + "description": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\. \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\\.", + "title": "StageVariables", + "type": "array" + } + }, + "title": "LambdaAuthorizerIdentity", + "type": "object" + }, + "LambdaRequestAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "FunctionArn": { + "anyOf": [ + { + "type": "object" + }, + { + "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\\.", + "title": "FunctionArn" + }, + "FunctionInvokeRole": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "FunctionInvokeRole", + "type": "string" + }, + "FunctionPayloadType": { + "description": "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\\.", + "enum": [ + "REQUEST" + ], + "markdownDescription": "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\\.", + "title": "FunctionPayloadType", + "type": "string" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/LambdaRequestAuthorizerIdentity" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Identity" + } + }, + "required": [ + "FunctionArn" + ], + "title": "LambdaRequestAuthorizer", + "type": "object" + }, + "LambdaRequestAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Context": { + "description": "Converts the given context strings to the mapping expressions of format `context.contextString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given context strings to the mapping expressions of format `context.contextString`\\. \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\\.", + "title": "Context", + "type": "array" + }, + "Headers": { + "description": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\. \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\\.", + "title": "Headers", + "type": "array" + }, + "QueryStrings": { + "description": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\. \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\\.", + "title": "QueryStrings", + "type": "array" + }, + "ReauthorizeEvery": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery" + }, + "StageVariables": { + "description": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\. \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\\.", + "title": "StageVariables", + "type": "array" + } + }, + "title": "LambdaRequestAuthorizerIdentity", + "type": "object" + }, + "LambdaTokenAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "FunctionArn": { + "anyOf": [ + { + "type": "object" + }, + { + "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\\.", + "title": "FunctionArn" + }, + "FunctionInvokeRole": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "FunctionInvokeRole", + "type": "string" + }, + "FunctionPayloadType": { + "description": "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\\.", + "enum": [ + "TOKEN" + ], + "markdownDescription": "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\\.", + "title": "FunctionPayloadType", + "type": "string" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/LambdaTokenAuthorizerIdentity" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Identity" + } + }, + "required": [ + "FunctionArn" + ], + "title": "LambdaTokenAuthorizer", + "type": "object" + }, + "LambdaTokenAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Header": { + "description": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Header", + "type": "string" + }, + "ReauthorizeEvery": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery" + }, + "ValidationExpression": { + "description": "Specify a validation expression for validating the incoming Identity\\. \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": "Specify a validation expression for validating the incoming Identity\\. \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": "ValidationExpression", + "type": "string" + } + }, + "title": "LambdaTokenAuthorizerIdentity", + "type": "object" + }, + "Location": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the application\\. \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 Amazon Resource Name \\(ARN\\) of the application\\. \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": "ApplicationId" + }, + "SemanticVersion": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The semantic version of the application\\. \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 semantic version of the application\\. \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": "SemanticVersion" + } + }, + "required": [ + "ApplicationId", + "SemanticVersion" + ], + "title": "Location", + "type": "object" + }, + "MQEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "MQEvent", + "type": "object" + }, + "MQEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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*: `10000`", + "markdownDescription": "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*: `10000`", + "title": "BatchSize" + }, + "Broker": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon MQ broker\\. \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 MQ broker\\. \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": "Broker" + }, + "Enabled": { + "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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "Queues": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Amazon MQ broker destination queue to consume\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The name of the Amazon MQ broker destination queue to consume\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Queues" + }, + "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't included 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't 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't included 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't have an AWS CloudFormation equivalent\\.", + "title": "SecretsManagerKmsKeyId", + "type": "string" + }, + "SourceAccessConfigurations": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol or vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\. \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+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` 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 vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\. \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+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` 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" + } + }, + "required": [ + "Broker", + "Queues", + "SourceAccessConfigurations" + ], + "title": "MQEventProperties", + "type": "object" + }, + "MSKEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "MSKEvent", + "type": "object" + }, + "MSKEventProperties": { + "additionalProperties": false, + "properties": { + "ConsumerGroupId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ConsumerGroupId" + }, + "FilterCriteria": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "SourceAccessConfigurations": { + "$ref": "#/definitions/PassThroughProp" + }, + "StartingPosition": { + "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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": { + "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" + }, + "Stream": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\. \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 data stream or a stream consumer\\. \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": "Stream" + }, + "Topics": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Topics" + } + }, + "required": [ + "StartingPosition", + "Stream", + "Topics" + ], + "title": "MSKEventProperties", + "type": "object" + }, + "OAuth2Authorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "IdentitySource": { + "description": "Identity source expression for this 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\\.", + "markdownDescription": "Identity source expression for this 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\\.", + "title": "IdentitySource", + "type": "string" + }, + "JwtConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "JWT configuration for this authorizer\\. \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "JWT configuration for this authorizer\\. \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "JwtConfiguration" + } + }, + "title": "OAuth2Authorizer", + "type": "object" + }, + "PassThroughProp": { + "title": "PassThroughProp" + }, + "PrimaryKey": { + "additionalProperties": false, + "properties": { + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Attribute name of the primary key\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\. \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.", + "markdownDescription": "Attribute name of the primary key\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\. \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.", + "title": "Name" + }, + "Type": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The data type for the primary key\\. \n*Valid values*: `String`, `Number`, `Binary` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.", + "markdownDescription": "The data type for the primary key\\. \n*Valid values*: `String`, `Number`, `Binary` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.", + "title": "Type" + } + }, + "required": [ + "Name", + "Type" + ], + "title": "PrimaryKey", + "type": "object" + }, + "Ref": { + "additionalProperties": false, + "properties": { + "Ref": { + "title": "Ref", + "type": "string" + } + }, + "required": [ + "Ref" + ], + "title": "Ref", + "type": "object" + }, + "RequestModel": { + "additionalProperties": false, + "properties": { + "Model": { + "description": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.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\\.", + "markdownDescription": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.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\\.", + "title": "Model", + "type": "string" + }, + "Required": { + "description": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\. \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": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\. \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": "Required", + "type": "boolean" + }, + "ValidateBody": { + "description": "Specifies whether API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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 API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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": "ValidateBody", + "type": "boolean" + }, + "ValidateParameters": { + "description": "Specifies whether API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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 API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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": "ValidateParameters", + "type": "boolean" + } + }, + "required": [ + "Model" + ], + "title": "RequestModel", + "type": "object" + }, + "RequestParameters": { + "additionalProperties": false, + "properties": { + "Caching": { + "description": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Caching", + "type": "boolean" + }, + "Required": { + "description": "This field specifies whether a parameter is required \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "This field specifies whether a parameter is required \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Required", + "type": "boolean" + } + }, + "title": "RequestParameters", + "type": "object" + }, + "ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" + }, + "S3Event": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Properties", + "Type" + ], + "title": "S3Event", + "type": "object" + }, + "S3EventProperties": { + "additionalProperties": false, + "properties": { + "Bucket": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "S3 bucket name\\. This bucket must exist in the same template\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template", + "markdownDescription": "S3 bucket name\\. This bucket must exist in the same template\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template", + "title": "Bucket" + }, + "Events": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\. \n*Type*: String \\| List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "markdownDescription": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\. \n*Type*: String \\| List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "title": "Events" + }, + "Filter": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\. \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "markdownDescription": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\. \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "title": "Filter" + } + }, + "required": [ + "Bucket", + "Events" + ], + "title": "S3EventProperties", + "type": "object" + }, + "SNSEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Properties", + "Type" + ], + "title": "SNSEvent", + "type": "object" + }, + "SNSEventProperties": { + "additionalProperties": false, + "properties": { + "FilterPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "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" + }, + "Region": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, CloudFormation uses the region of the caller as the default\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.", + "markdownDescription": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, CloudFormation uses the region of the caller as the default\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.", + "title": "Region" + }, + "SqsSubscription": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/SqsSubscription" + } + ], + "description": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\. \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\. \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "SqsSubscription" + }, + "Topic": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the topic to subscribe to\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.", + "markdownDescription": "The ARN of the topic to subscribe to\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.", + "title": "Topic" + } + }, + "required": [ + "Topic" + ], + "title": "SNSEventProperties", + "type": "object" + }, + "SQSEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "SQSEvent", + "type": "object" + }, + "SQSEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*Default*: 10 \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*: `10000`", + "markdownDescription": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*Default*: 10 \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*: `10000`", + "title": "BatchSize" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "MaximumBatchingWindowInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum amount of time, in seconds, to gather records before invoking the function\\. \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, in seconds, to gather records before invoking the function\\. \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" + }, + "Queue": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the queue\\. \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 ARN of the queue\\. \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": "Queue" + }, + "ScalingConfig": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Queue" + ], + "title": "SQSEventProperties", + "type": "object" + }, + "ScheduleEventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "title": "Description" + }, + "Enabled": { + "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "title": "Enabled", + "type": "boolean" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "title": "Name" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Schedule": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "title": "Schedule" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "title": "State" + }, + "Target": { + "$ref": "#/definitions/ScheduleTarget" + } + }, + "title": "ScheduleEventProperties", + "type": "object" + }, + "ScheduleTarget": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Id" + ], + "title": "ScheduleTarget", + "type": "object" + }, + "SelfManagedKafkaEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "SelfManagedKafkaEvent", + "type": "object" + }, + "SelfManagedKafkaEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\. \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*: `10000`", + "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\. \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*: `10000`", + "title": "BatchSize" + }, + "ConsumerGroupId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ConsumerGroupId" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "KafkaBootstrapServers": { + "description": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx` \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx` \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\\.", + "title": "KafkaBootstrapServers", + "type": "array" + }, + "SourceAccessConfigurations": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) \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, VPC components, or virtual host to secure and define your event source\\. \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) \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" + }, + "Topics": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Topics" + } + }, + "required": [ + "SourceAccessConfigurations", + "Topics" + ], + "title": "SelfManagedKafkaEventProperties", + "type": "object" + }, + "SqsSubscription": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The maximum number of items to retrieve in a single batch for the SQS queue\\. \n*Type*: String \n*Required*: No \n*Default*: 10 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The maximum number of items to retrieve in a single batch for the SQS queue\\. \n*Type*: String \n*Required*: No \n*Default*: 10 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "BatchSize" + }, + "Enabled": { + "description": "Disables the SQS event source mapping to pause polling and invocation\\. \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": "Disables the SQS event source mapping to pause polling and invocation\\. \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\\.", + "title": "Enabled", + "type": "boolean" + }, + "QueueArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specify an existing SQS queue arn\\. \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 an existing SQS queue arn\\. \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": "QueueArn" + }, + "QueuePolicyLogicalId": { + "description": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\. \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": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\. \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": "QueuePolicyLogicalId", + "type": "string" + }, + "QueueUrl": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specify the queue URL associated with the `QueueArn` property\\. \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 queue URL associated with the `QueueArn` property\\. \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": "QueueUrl" + } + }, + "required": [ + "QueueArn", + "QueueUrl" + ], + "title": "SqsSubscription", + "type": "object" + }, + "UsagePlan": { + "additionalProperties": false, + "properties": { + "CreateUsagePlan": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "PER_API", + "SHARED", + "NONE" + ], + "type": "string" + } + ], + "description": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\. \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `UsagePlan`, `ApiKey`, and `UsagePlanKey`, respectively\\. \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\. \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\. \n*Valid values*: `PER_API`, `SHARED`, and `NONE` \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": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\. \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `UsagePlan`, `ApiKey`, and `UsagePlanKey`, respectively\\. \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\. \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\. \n*Valid values*: `PER_API`, `SHARED`, and `NONE` \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": "CreateUsagePlan" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "A description of the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Description" + }, + "Quota": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures the number of requests that users can make within a given interval\\. \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "Configures the number of requests that users can make within a given interval\\. \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Quota" + }, + "Tags": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Tags" + }, + "Throttle": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Throttle" + }, + "UsagePlanName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "A name for the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "UsagePlanName" + } + }, + "required": [ + "CreateUsagePlan" + ], + "title": "UsagePlan", + "type": "object" + }, + "__main____Globals": { + "additionalProperties": false, + "properties": { + "Api": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Globals" + }, + "Function": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Globals" + }, + "HttpApi": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Globals" + }, + "SimpleTable": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Globals" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__any_cfn_resource__Resource": { + "properties": { + "Type": { + "pattern": "^(?!AWS::Serverless::).+$", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Auth": { + "additionalProperties": false, + "properties": { + "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\\.", + "title": "AddDefaultAuthorizerToCorsPreflight", + "type": "boolean" + }, + "ApiKeyRequired": { + "description": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \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": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \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": "ApiKeyRequired", + "type": "boolean" + }, + "Authorizers": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/CognitoAuthorizer" + }, + { + "$ref": "#/definitions/LambdaTokenAuthorizer" + }, + { + "$ref": "#/definitions/LambdaRequestAuthorizer" + } + ] + }, + "description": "The authorizer used to control access to your API Gateway API\\. \nFor more information, 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*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.", + "markdownDescription": "The authorizer used to control access to your API Gateway API\\. \nFor more information, 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*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.", + "title": "Authorizers", + "type": "object" + }, + "DefaultAuthorizer": { + "description": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\. \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\. \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DefaultAuthorizer", + "type": "string" + }, + "InvokeRole": { + "description": "Sets integration credentials for all resources and methods to this value\\. \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\. \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn` \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Sets integration credentials for all resources and methods to this value\\. \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\. \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn` \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "InvokeRole", + "type": "string" + }, + "ResourcePolicy": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__ResourcePolicy" + } + ], + "description": "Configure Resource Policy for all methods and paths on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.", + "markdownDescription": "Configure Resource Policy for all methods and paths on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.", + "title": "ResourcePolicy" + }, + "UsagePlan": { + "allOf": [ + { + "$ref": "#/definitions/UsagePlan" + } + ], + "description": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. 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*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. 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*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "UsagePlan" + } + }, + "title": "Auth", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__DefinitionUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "title": "Bucket" + }, + "Key": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "markdownDescription": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "title": "Key" + }, + "Version": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "markdownDescription": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "title": "Version" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "DefinitionUri", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Domain": { + "additionalProperties": false, + "properties": { + "BasePath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.", + "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.", + "title": "BasePath" + }, + "CertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\. \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\. \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.", + "title": "CertificateArn" + }, + "DomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "DomainName" + }, + "EndpointConfiguration": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "REGIONAL", + "EDGE" + ], + "type": "string" + } + ], + "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \n*Valid values*: `REGIONAL` or `EDGE` \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \n*Valid values*: `REGIONAL` or `EDGE` \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EndpointConfiguration" + }, + "MutualTlsAuthentication": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "MutualTlsAuthentication" + }, + "NormalizeBasePath": { + "description": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\. \nUse `NormalizeBasePath` with the `BasePath` property\\. \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": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\. \nUse `NormalizeBasePath` with the `BasePath` property\\. \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\\.", + "title": "NormalizeBasePath", + "type": "boolean" + }, + "OwnershipVerificationCertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "OwnershipVerificationCertificateArn" + }, + "Route53": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Route53" + } + ], + "description": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Route53" + }, + "SecurityPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The TLS version plus cipher suite for this domain name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The TLS version plus cipher suite for this domain name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "SecurityPolicy" + } + }, + "required": [ + "CertificateArn", + "DomainName" + ], + "title": "Domain", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Globals": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AccessLogSetting" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Auth" + }, + "BinaryMediaTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BinaryMediaTypes" + }, + "CacheClusterEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterEnabled" + }, + "CacheClusterSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterSize" + }, + "CanarySetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CanarySetting" + }, + "Cors": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + }, + { + "$ref": "#/definitions/Cors" + } + ], + "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Cors" + }, + "DefinitionUri": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "DefinitionUri" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "EndpointConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "markdownDescription": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "title": "EndpointConfiguration" + }, + "GatewayResponses": { + "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "GatewayResponses", + "type": "object" + }, + "MethodSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "MethodSettings" + }, + "MinimumCompressionSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "MinimumCompressionSize" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Name" + }, + "OpenApiVersion": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "OpenApiVersion" + }, + "TracingEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "TracingEnabled" + }, + "Variables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "Variables" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Properties": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AccessLogSetting" + }, + "ApiKeySourceType": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "ApiKeySourceType" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Auth" + }, + "BinaryMediaTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BinaryMediaTypes" + }, + "CacheClusterEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterEnabled" + }, + "CacheClusterSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterSize" + }, + "CanarySetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CanarySetting" + }, + "Cors": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + }, + { + "$ref": "#/definitions/Cors" + } + ], + "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Cors" + }, + "DefinitionBody": { + "description": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.", + "markdownDescription": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.", + "title": "DefinitionBody", + "type": "object" + }, + "DefinitionUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__DefinitionUri" + } + ], + "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "DefinitionUri" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the Api resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "A description of the Api resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Description" + }, + "DisableExecuteApiEndpoint": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "DisableExecuteApiEndpoint" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "EndpointConfiguration": { + "anyOf": [ + { + "type": "object" + }, + { + "$ref": "#/definitions/EndpointConfiguration" + } + ], + "description": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "markdownDescription": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "title": "EndpointConfiguration" + }, + "FailOnWarnings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "FailOnWarnings" + }, + "GatewayResponses": { + "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "GatewayResponses", + "type": "object" + }, + "MethodSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "MethodSettings" + }, + "MinimumCompressionSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "MinimumCompressionSize" + }, + "Mode": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\. \n*Valid values*: `overwrite` or `merge` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\. \n*Valid values*: `overwrite` or `merge` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Mode" + }, + "Models": { + "description": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Models", + "type": "object" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Name" + }, + "OpenApiVersion": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "OpenApiVersion" + }, + "StageName": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\. \nTo reference the stage resource, use `.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. 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*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.", + "markdownDescription": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\. \nTo reference the stage resource, use `.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. 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*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.", + "title": "StageName" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "title": "Tags", + "type": "object" + }, + "TracingEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "TracingEnabled" + }, + "Variables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "Variables" + } + }, + "required": [ + "StageName" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Api" + ], + "title": "Type", + "type": "string" + }, + "UpdatePolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__ResourcePolicy": { + "additionalProperties": false, + "properties": { + "AwsAccountBlacklist": { + "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountBlacklist", + "type": "array" + }, + "AwsAccountWhitelist": { + "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountWhitelist", + "type": "array" + }, + "CustomStatements": { + "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "CustomStatements", + "type": "array" + }, + "IntrinsicVpcBlacklist": { + "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpcBlacklist", + "type": "array" + }, + "IntrinsicVpcWhitelist": { + "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpcWhitelist", + "type": "array" + }, + "IntrinsicVpceBlacklist": { + "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpceBlacklist", + "type": "array" + }, + "IntrinsicVpceWhitelist": { + "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpceWhitelist", + "type": "array" + }, + "IpRangeBlacklist": { + "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IpRangeBlacklist", + "type": "array" + }, + "IpRangeWhitelist": { + "description": "The IP addresses or address ranges to allow\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", + "title": "IpRangeWhitelist", + "type": "array" + }, + "SourceVpcBlacklist": { + "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "SourceVpcBlacklist", + "type": "array" + }, + "SourceVpcWhitelist": { + "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "title": "SourceVpcWhitelist", + "type": "array" + } + }, + "title": "ResourcePolicy", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Route53": { + "additionalProperties": false, + "properties": { + "DistributionDomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "markdownDescription": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "title": "DistributionDomainName" + }, + "EvaluateTargetHealth": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "title": "EvaluateTargetHealth" + }, + "HostedZoneId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneId" + }, + "HostedZoneName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneName" + }, + "IpV6": { + "description": "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\\.", + "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" + } + }, + "title": "Route53", + "type": "object" + }, + "samtranslator__schema__aws_serverless_application__Properties": { + "additionalProperties": false, + "properties": { + "Location": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/Location" + } + ], + "description": "Template URL, file path, or location object of a nested application\\. \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\. \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.", + "markdownDescription": "Template URL, file path, or location object of a nested application\\. \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\. \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.", + "title": "Location" + }, + "NotificationARNs": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of existing Amazon SNS topics where notifications about stack events are sent\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.", + "markdownDescription": "A list of existing Amazon SNS topics where notifications about stack events are sent\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.", + "title": "NotificationARNs" + }, + "Parameters": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Application parameter values\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.", + "markdownDescription": "Application parameter values\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.", + "title": "Parameters" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\. \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-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\. \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-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.", + "title": "Tags", + "type": "object" + }, + "TimeoutInMinutes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "TimeoutInMinutes" + } + }, + "required": [ + "Location" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_application__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Application" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_connector__Properties": { + "additionalProperties": false, + "properties": { + "Destination": { + "allOf": [ + { + "$ref": "#/definitions/ResourceReference" + } + ], + "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\\.", + "title": "Destination" + }, + "Permissions": { + "description": "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\\.", + "items": { + "enum": [ + "Read", + "Write" + ], + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "Permissions", + "type": "array" + }, + "Source": { + "allOf": [ + { + "$ref": "#/definitions/ResourceReference" + } + ], + "description": "The source 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 source 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\\.", + "title": "Source" + } + }, + "required": [ + "Source", + "Destination", + "Permissions" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_connector__Resource": { + "additionalProperties": false, + "properties": { + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Connector" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ApiEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ApiEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ApiEventProperties": { + "additionalProperties": false, + "properties": { + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/ApiAuth" + } + ], + "description": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\. \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\. \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "Method": { + "description": "HTTP method for which this function is invoked\\. \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": "HTTP method for which this function is invoked\\. \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": "Method", + "type": "string" + }, + "Path": { + "description": "Uri path for which this function is invoked\\. Must start with `/`\\. \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": "Uri path for which this function is invoked\\. Must start with `/`\\. \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": "Path", + "type": "string" + }, + "RequestModel": { + "allOf": [ + { + "$ref": "#/definitions/RequestModel" + } + ], + "description": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\. \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\. \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "RequestModel" + }, + "RequestParameters": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/RequestParameters" + } + ], + "description": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\. \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\. \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\. \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\. \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "RequestParameters" + }, + "RestApiId": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/Ref" + } + ], + "description": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\. \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": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\. \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": "RestApiId" + } + }, + "required": [ + "Method", + "Path" + ], + "title": "ApiEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__CloudWatchEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CloudWatchEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__CloudWatchEventProperties": { + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "title": "Enabled", + "type": "boolean" + }, + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "title": "State" + } + }, + "title": "CloudWatchEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "title": "Arn" + }, + "QueueLogicalId": { + "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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 custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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": "QueueLogicalId", + "type": "string" + }, + "Type": { + "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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\\.", + "enum": [ + "SQS" + ], + "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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": "Type", + "type": "string" + } + }, + "title": "DeadLetterConfig", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "EventBridgeRuleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Target": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__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-function-target.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-function-target.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" + } + }, + "required": [ + "Pattern" + ], + "title": "EventBridgeRuleEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget": { + "additionalProperties": false, + "properties": { + "Id": { + "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": [ + "Id" + ], + "title": "EventBridgeRuleTarget", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__Globals": { + "additionalProperties": false, + "properties": { + "Architectures": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Architectures" + }, + "AssumeRolePolicyDocument": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AssumeRolePolicyDocument", + "type": "object" + }, + "AutoPublishAlias": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AutoPublishAlias" + }, + "CodeUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/CodeUri" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "CodeUri" + }, + "DeadLetterQueue": { + "anyOf": [ + { + "type": "object" + }, + { + "$ref": "#/definitions/DeadLetterQueue" + } + ], + "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "title": "DeadLetterQueue" + }, + "DeploymentPreference": { + "allOf": [ + { + "$ref": "#/definitions/DeploymentPreference" + } + ], + "description": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "markdownDescription": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "title": "DeploymentPreference" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "title": "Description" + }, + "Environment": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "Environment" + }, + "EphemeralStorage": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "title": "EphemeralStorage" + }, + "EventInvokeConfig": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeConfig" + } + ], + "description": "The object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.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 object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EventInvokeConfig" + }, + "Handler": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "title": "Handler" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "title": "KmsKeyArn" + }, + "Layers": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "title": "Layers" + }, + "MemorySize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "title": "MemorySize" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "ProvisionedConcurrencyConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "markdownDescription": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "title": "ProvisionedConcurrencyConfig" + }, + "ReservedConcurrentExecutions": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "title": "ReservedConcurrentExecutions" + }, + "RolePath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The path to the function'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 function'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" + }, + "Runtime": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "title": "Runtime" + }, + "SnapStart": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "title": "SnapStart" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "title": "Tags", + "type": "object" + }, + "Timeout": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "title": "Timeout" + }, + "Tracing": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "Active", + "PassThrough" + ], + "type": "string" + } + ], + "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "title": "Tracing" + }, + "VpcConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "VpcConfig" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__Properties": { + "additionalProperties": false, + "properties": { + "Architectures": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Architectures" + }, + "AssumeRolePolicyDocument": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AssumeRolePolicyDocument", + "type": "object" + }, + "AutoPublishAlias": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AutoPublishAlias" + }, + "AutoPublishCodeSha256": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AutoPublishCodeSha256" + }, + "CodeSigningConfigArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "CodeSigningConfigArn" + }, + "CodeUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/CodeUri" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "CodeUri" + }, + "DeadLetterQueue": { + "anyOf": [ + { + "type": "object" + }, + { + "$ref": "#/definitions/DeadLetterQueue" + } + ], + "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "title": "DeadLetterQueue" + }, + "DeploymentPreference": { + "allOf": [ + { + "$ref": "#/definitions/DeploymentPreference" + } + ], + "description": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "markdownDescription": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "title": "DeploymentPreference" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "title": "Description" + }, + "Environment": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "Environment" + }, + "EphemeralStorage": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "title": "EphemeralStorage" + }, + "EventInvokeConfig": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeConfig" + } + ], + "description": "The object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.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 object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EventInvokeConfig" + }, + "Events": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/S3Event" + }, + { + "$ref": "#/definitions/SNSEvent" + }, + { + "$ref": "#/definitions/KinesisEvent" + }, + { + "$ref": "#/definitions/DynamoDBEvent" + }, + { + "$ref": "#/definitions/SQSEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2Event" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent" + }, + { + "$ref": "#/definitions/CloudWatchLogsEvent" + }, + { + "$ref": "#/definitions/IoTRuleEvent" + }, + { + "$ref": "#/definitions/AlexaSkillEvent" + }, + { + "$ref": "#/definitions/CognitoEvent" + }, + { + "$ref": "#/definitions/HttpApiEvent" + }, + { + "$ref": "#/definitions/MSKEvent" + }, + { + "$ref": "#/definitions/MQEvent" + }, + { + "$ref": "#/definitions/SelfManagedKafkaEvent" + } + ] + }, + "description": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Events", + "type": "object" + }, + "FileSystemConfigs": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\. \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\. \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.", + "title": "FileSystemConfigs" + }, + "FunctionName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.", + "title": "FunctionName" + }, + "FunctionUrlConfig": { + "allOf": [ + { + "$ref": "#/definitions/FunctionUrlConfig" + } + ], + "description": "The object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.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 object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "FunctionUrlConfig" + }, + "Handler": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "title": "Handler" + }, + "ImageConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.", + "title": "ImageConfig" + }, + "ImageUri": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "ImageUri" + }, + "InlineCode": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\. \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\. \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "InlineCode" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "title": "KmsKeyArn" + }, + "Layers": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "title": "Layers" + }, + "MemorySize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "title": "MemorySize" + }, + "PackageType": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\. \n**Notes**: \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\. \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\. \n*Valid values*: `Zip` or `Image` \n*Type*: String \n*Required*: No \n*Default*: `Zip` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\. \n**Notes**: \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\. \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\. \n*Valid values*: `Zip` or `Image` \n*Type*: String \n*Required*: No \n*Default*: `Zip` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.", + "title": "PackageType" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "Policies": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + ], + "description": "One or more policies that this function needs\\. They will be appended to the default role for this function\\. \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\. \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\. \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.", + "markdownDescription": "One or more policies that this function needs\\. They will be appended to the default role for this function\\. \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\. \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\. \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.", + "title": "Policies" + }, + "ProvisionedConcurrencyConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "markdownDescription": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "title": "ProvisionedConcurrencyConfig" + }, + "ReservedConcurrentExecutions": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "title": "ReservedConcurrentExecutions" + }, + "Role": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The ARN of an IAM role to use as this function's execution role\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `Role`\\.", + "markdownDescription": "The ARN of an IAM role to use as this function's execution role\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `Role`\\.", + "title": "Role" + }, + "RolePath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The path to the function'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 function'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" + }, + "Runtime": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "title": "Runtime" + }, + "SnapStart": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "title": "SnapStart" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "title": "Tags", + "type": "object" + }, + "Timeout": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "title": "Timeout" + }, + "Tracing": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "Active", + "PassThrough" + ], + "type": "string" + } + ], + "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "title": "Tracing" + }, + "VersionDescription": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the `Description` field that is added on the new Lambda version resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.", + "markdownDescription": "Specifies the `Description` field that is added on the new Lambda version resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.", + "title": "VersionDescription" + }, + "VpcConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "VpcConfig" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Function" + ], + "title": "Type", + "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Type" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ResourcePolicy": { + "additionalProperties": false, + "properties": { + "AwsAccountBlacklist": { + "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountBlacklist", + "type": "array" + }, + "AwsAccountWhitelist": { + "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountWhitelist", + "type": "array" + }, + "CustomStatements": { + "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "CustomStatements", + "type": "array" + }, + "IntrinsicVpcBlacklist": { + "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpcBlacklist", + "type": "array" + }, + "IntrinsicVpcWhitelist": { + "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpcWhitelist", + "type": "array" + }, + "IntrinsicVpceBlacklist": { + "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpceBlacklist", + "type": "array" + }, + "IntrinsicVpceWhitelist": { + "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpceWhitelist", + "type": "array" + }, + "IpRangeBlacklist": { + "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IpRangeBlacklist", + "type": "array" + }, + "IpRangeWhitelist": { + "description": "The IP addresses or address ranges to allow\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", + "title": "IpRangeWhitelist", + "type": "array" + }, + "SourceVpcBlacklist": { + "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "SourceVpcBlacklist", + "type": "array" + }, + "SourceVpcWhitelist": { + "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "title": "SourceVpcWhitelist", + "type": "array" + } + }, + "title": "ResourcePolicy", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ScheduleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ScheduleV2Event": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleV2Event", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Description" + }, + "EndDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "EndDate" + }, + "FlexibleTimeWindow": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "FlexibleTimeWindow" + }, + "GroupName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "GroupName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "title": "Input" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "KmsKeyArn" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Name" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A RetryPolicy object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "A RetryPolicy object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "RoleArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RoleArn" + }, + "ScheduleExpression": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the scheduler schedule event runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the scheduler schedule event runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpression" + }, + "ScheduleExpressionTimezone": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpressionTimezone" + }, + "StartDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "StartDate" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the Scheduler schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The state of the Scheduler schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "State" + } + }, + "title": "ScheduleV2EventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Auth": { + "additionalProperties": false, + "properties": { + "Authorizers": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/OAuth2Authorizer" + }, + { + "$ref": "#/definitions/LambdaAuthorizer" + } + ] + }, + "description": "The authorizer used to control access to your API Gateway API\\. \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.", + "markdownDescription": "The authorizer used to control access to your API Gateway API\\. \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.", + "title": "Authorizers", + "type": "object" + }, + "DefaultAuthorizer": { + "description": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\. \n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\. \n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DefaultAuthorizer", + "type": "string" + }, + "EnableIamAuthorizer": { + "description": "Specify whether to use IAM authorization for the API route\\. \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 whether to use IAM authorization for the API route\\. \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": "EnableIamAuthorizer", + "type": "boolean" + } + }, + "title": "Auth", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__DefinitionUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "title": "Bucket", + "type": "string" + }, + "Key": { + "description": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "markdownDescription": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "title": "Key", + "type": "string" + }, + "Version": { + "description": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "markdownDescription": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "DefinitionUri", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Domain": { + "additionalProperties": false, + "properties": { + "BasePath": { + "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.", + "items": { + "type": "string" + }, + "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.", + "title": "BasePath", + "type": "array" + }, + "CertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.", + "title": "CertificateArn" + }, + "DomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.", + "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.", + "title": "DomainName" + }, + "EndpointConfiguration": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "REGIONAL" + ], + "type": "string" + } + ], + "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \nThe only valid value for HTTP APIs is `REGIONAL`\\. \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \nThe only valid value for HTTP APIs is `REGIONAL`\\. \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EndpointConfiguration" + }, + "MutualTlsAuthentication": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.", + "markdownDescription": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.", + "title": "MutualTlsAuthentication" + }, + "OwnershipVerificationCertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "title": "OwnershipVerificationCertificateArn" + }, + "Route53": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Route53" + } + ], + "description": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Route53" + }, + "SecurityPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The TLS version of the security policy for this domain name\\. \nThe only valid value for HTTP APIs is `TLS_1_2`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "markdownDescription": "The TLS version of the security policy for this domain name\\. \nThe only valid value for HTTP APIs is `TLS_1_2`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "title": "SecurityPolicy" + } + }, + "required": [ + "CertificateArn", + "DomainName" + ], + "title": "Domain", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Globals": { + "additionalProperties": false, + "properties": { + "AccessLogSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "AccessLogSettings" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + } + ], + "description": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "CorsConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "CorsConfiguration" + }, + "DefaultRouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "DefaultRouteSettings" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "FailOnWarnings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "title": "FailOnWarnings" + }, + "RouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "RouteSettings" + }, + "StageVariables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "StageVariables" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "title": "Tags", + "type": "object" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Properties": { + "additionalProperties": false, + "properties": { + "AccessLogSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "AccessLogSettings" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + } + ], + "description": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "CorsConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "CorsConfiguration" + }, + "DefaultRouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "DefaultRouteSettings" + }, + "DefinitionBody": { + "description": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.", + "markdownDescription": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.", + "title": "DefinitionBody", + "type": "object" + }, + "DefinitionUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__DefinitionUri" + } + ], + "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\. \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\. \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "DefinitionUri" + }, + "Description": { + "description": "The description of the HTTP API resource\\. \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` 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 description of the HTTP API resource\\. \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` 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": "Description", + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "markdownDescription": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "title": "DisableExecuteApiEndpoint" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "FailOnWarnings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "title": "FailOnWarnings" + }, + "Name": { + "$ref": "#/definitions/PassThroughProp" + }, + "RouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "RouteSettings" + }, + "StageName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\. \n*Type*: String \n*Required*: No \n*Default*: $default \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\. \n*Type*: String \n*Required*: No \n*Default*: $default \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "StageName" + }, + "StageVariables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "StageVariables" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "title": "Tags", + "type": "object" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::HttpApi" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Route53": { + "additionalProperties": false, + "properties": { + "DistributionDomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "markdownDescription": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "title": "DistributionDomainName" + }, + "EvaluateTargetHealth": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "title": "EvaluateTargetHealth" + }, + "HostedZoneId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneId" + }, + "HostedZoneName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneName" + }, + "IpV6": { + "description": "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\\.", + "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" + } + }, + "title": "Route53", + "type": "object" + }, + "samtranslator__schema__aws_serverless_layerversion__Properties": { + "additionalProperties": false, + "properties": { + "CompatibleArchitectures": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the supported instruction set architectures for the layer version\\. \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*: `x86_64`, `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Specifies the supported instruction set architectures for the layer version\\. \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*: `x86_64`, `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "CompatibleArchitectures" + }, + "CompatibleRuntimes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "List of runtimes compatible with this LayerVersion\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "List of runtimes compatible with this LayerVersion\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "CompatibleRuntimes" + }, + "ContentUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/ContentUri" + } + ], + "description": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\. \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\. \nIf a path to a local folder is provided, for the content 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 \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\. \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\. \nIf a path to a local folder is provided, for the content 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 \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "ContentUri" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Description of this layer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Description of this layer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "Description" + }, + "LayerName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name or Amazon Resource Name \\(ARN\\) of the layer\\. \n*Type*: String \n*Required*: No \n*Default*: Resource logical id \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.", + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the layer\\. \n*Type*: String \n*Required*: No \n*Default*: Resource logical id \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.", + "title": "LayerName" + }, + "LicenseInfo": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Information about the license for this LayerVersion\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Information about the license for this LayerVersion\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "LicenseInfo" + }, + "RetentionPolicy": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\. \n*Valid values*: `Retain` or `Delete` \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\\. \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\. \n*Valid values*: `Retain` or `Delete` \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\\. \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.", + "title": "RetentionPolicy" + } + }, + "required": [ + "ContentUri" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_layerversion__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::LayerVersion" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_simpletable__Globals": { + "additionalProperties": false, + "properties": { + "SSESpecification": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "SSESpecification" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_simpletable__Properties": { + "additionalProperties": false, + "properties": { + "PrimaryKey": { + "allOf": [ + { + "$ref": "#/definitions/PrimaryKey" + } + ], + "description": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\. \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\. \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "PrimaryKey" + }, + "ProvisionedThroughput": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Read and write throughput provisioning information\\. \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\. \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Read and write throughput provisioning information\\. \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\. \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "ProvisionedThroughput" + }, + "SSESpecification": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "SSESpecification" + }, + "TableName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Name for the DynamoDB Table\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Name for the DynamoDB Table\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "TableName" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "title": "Tags", + "type": "object" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_simpletable__Resource": { + "additionalProperties": false, + "properties": { + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::SimpleTable" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ApiEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ApiEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ApiEventProperties": { + "additionalProperties": false, + "properties": { + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Auth" + } + ], + "description": "The authorization configuration for this API, path, and method\\. \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\. \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.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 authorization configuration for this API, path, and method\\. \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\. \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "Method": { + "description": "The HTTP method for which this function is invoked\\. \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 HTTP method for which this function is invoked\\. \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": "Method", + "type": "string" + }, + "Path": { + "description": "The URI path for which this function is invoked\\. The value must start with `/`\\. \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 URI path for which this function is invoked\\. The value must start with `/`\\. \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": "Path", + "type": "string" + }, + "RestApiId": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\. \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 identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\. \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": "RestApiId" + }, + "UnescapeMappingTemplate": { + "title": "Unescapemappingtemplate", + "type": "boolean" + } + }, + "required": [ + "Method", + "Path" + ], + "title": "ApiEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__Auth": { + "additionalProperties": false, + "properties": { + "ApiKeyRequired": { + "description": "Requires an API key for this API, path, and method\\. \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": "Requires an API key for this API, path, and method\\. \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": "ApiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "description": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Authorizer": { + "description": "The `Authorizer` for a specific state machine\\. \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific state machine\\. \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "type": "string" + }, + "ResourcePolicy": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ResourcePolicy" + } + ], + "description": "Configure the resource policy for this API and path\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configure the resource policy for this API and path\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ResourcePolicy" + } + }, + "title": "Auth", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CloudWatchEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties": { + "additionalProperties": false, + "properties": { + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + } + }, + "title": "CloudWatchEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "title": "Arn" + }, + "QueueLogicalId": { + "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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 custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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": "QueueLogicalId", + "type": "string" + }, + "Type": { + "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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\\.", + "enum": [ + "SQS" + ], + "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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": "Type", + "type": "string" + } + }, + "title": "DeadLetterConfig", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "EventBridgeRuleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Target": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget" + } + }, + "title": "EventBridgeRuleEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Id" + ], + "title": "EventBridgeRuleTarget", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__Properties": { + "additionalProperties": false, + "properties": { + "Definition": { + "description": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Definition", + "type": "object" + }, + "DefinitionSubstitutions": { + "description": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.", + "markdownDescription": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.", + "title": "DefinitionSubstitutions", + "type": "object" + }, + "DefinitionUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "DefinitionUri" + }, + "Events": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEvent" + } + ] + }, + "description": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Events", + "type": "object" + }, + "Logging": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Defines which execution history events are logged and where they are logged\\. \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "Defines which execution history events are logged and where they are logged\\. \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Logging" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the state machine\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The name of the state machine\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Name" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "Policies": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + ], + "description": "One or more policies that this state machine's execution role needs\\. \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\. \nIf the `Role` property is set, this property is ignored\\. \n*Type*: String \\| List \\| Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "One or more policies that this state machine's execution role needs\\. \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\. \nIf the `Role` property is set, this property is ignored\\. \n*Type*: String \\| List \\| Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Policies" + }, + "Role": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of an IAM role to use as this state machine's execution role\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The ARN of an IAM role to use as this state machine's execution role\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Role" + }, + "RolePath": { + "$ref": "#/definitions/PassThroughProp" + }, + "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\\.", + "markdownDescription": "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\\.", + "title": "Tags", + "type": "object" + }, + "Tracing": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\. \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\. \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Tracing" + }, + "Type": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The type of the state machine\\. \n*Valid values*: `STANDARD` or `EXPRESS` \n*Type*: String \n*Required*: No \n*Default*: `STANDARD` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The type of the state machine\\. \n*Valid values*: `STANDARD` or `EXPRESS` \n*Type*: String \n*Required*: No \n*Default*: `STANDARD` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Type" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::StateMachine" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ResourcePolicy": { + "additionalProperties": false, + "properties": { + "AwsAccountBlacklist": { + "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountBlacklist", + "type": "array" + }, + "AwsAccountWhitelist": { + "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountWhitelist", + "type": "array" + }, + "CustomStatements": { + "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "CustomStatements", + "type": "array" + }, + "IntrinsicVpcBlacklist": { + "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpcBlacklist", + "type": "array" + }, + "IntrinsicVpcWhitelist": { + "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpcWhitelist", + "type": "array" + }, + "IntrinsicVpceBlacklist": { + "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpceBlacklist", + "type": "array" + }, + "IntrinsicVpceWhitelist": { + "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpceWhitelist", + "type": "array" + }, + "IpRangeBlacklist": { + "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IpRangeBlacklist", + "type": "array" + }, + "IpRangeWhitelist": { + "description": "The IP addresses or address ranges to allow\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", + "title": "IpRangeWhitelist", + "type": "array" + }, + "SourceVpcBlacklist": { + "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "SourceVpcBlacklist", + "type": "array" + }, + "SourceVpcWhitelist": { + "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "title": "SourceVpcWhitelist", + "type": "array" + } + }, + "title": "ResourcePolicy", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ScheduleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/ScheduleEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleV2Event", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Description" + }, + "EndDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "EndDate" + }, + "FlexibleTimeWindow": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "FlexibleTimeWindow" + }, + "GroupName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "GroupName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "title": "Input" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "KmsKeyArn" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Name" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "RoleArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RoleArn" + }, + "ScheduleExpression": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the schedule runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the schedule runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpression" + }, + "ScheduleExpressionTimezone": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpressionTimezone" + }, + "StartDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "StartDate" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The state of the schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "State" + } + }, + "title": "ScheduleV2EventProperties", + "type": "object" + } + }, + "properties": { + "Globals": { + "$ref": "#/definitions/__main____Globals" + }, + "Resources": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__any_cfn_resource__Resource" + } + ] + }, + "title": "Resources", + "type": "object" + } + }, + "required": [ + "Resources" + ], + "title": "SamModel", + "type": "object" +} diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index fd724ab60..60af6ce62 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -1,1177 +1,1317 @@ { "$schema": "http://json-schema.org/draft-04/schema#", + "additionalProperties": false, "definitions": { - "AlexaSkillEvent": { + "AWS::ACMPCA::Certificate": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/AlexaSkillEventProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiPassthrough": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.ApiPassthrough" + }, + "CertificateAuthorityArn": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "SigningAlgorithm": { + "type": "string" + }, + "TemplateArn": { + "type": "string" + }, + "Validity": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity" + }, + "ValidityNotBefore": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Validity" } + }, + "required": [ + "CertificateAuthorityArn", + "CertificateSigningRequest", + "SigningAlgorithm", + "Validity" ], - "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\\.", - "title": "Properties" + "type": "object" }, "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\\.", "enum": [ - "AlexaSkill" + "AWS::ACMPCA::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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\\.", - "title": "Type", "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], - "title": "AlexaSkillEvent", "type": "object" }, - "AlexaSkillEventProperties": { + "AWS::ACMPCA::Certificate.ApiPassthrough": { "additionalProperties": false, "properties": { - "SkillId": { - "description": "The Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\. \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 Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\. \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": "SkillId", - "type": "string" + "Extensions": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Extensions" + }, + "Subject": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject" } }, - "title": "AlexaSkillEventProperties", "type": "object" }, - "ApiAuth": { + "AWS::ACMPCA::Certificate.CustomAttribute": { "additionalProperties": false, "properties": { - "ApiKeyRequired": { - "description": "Requires an API key for this API, path, and method\\. \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": "Requires an API key for this API, path, and method\\. \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": "ApiKeyRequired", - "type": "boolean" - }, - "AuthorizationScopes": { - "description": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", - "title": "AuthorizationScopes", - "type": "array" - }, - "Authorizer": { - "description": "The `Authorizer` for a specific Function \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific Function \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "ObjectIdentifier": { "type": "string" }, - "InvokeRole": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\. \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.", - "markdownDescription": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\. \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.", - "title": "InvokeRole" - }, - "ResourcePolicy": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ResourcePolicy" - } - ], - "description": "Configure Resource Policy for this path on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configure Resource Policy for this path on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "ResourcePolicy" + "Value": { + "type": "string" } }, - "title": "ApiAuth", + "required": [ + "ObjectIdentifier", + "Value" + ], "type": "object" }, - "CloudWatchLogsEvent": { + "AWS::ACMPCA::Certificate.CustomExtension": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$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\\.", - "title": "Properties" + "Critical": { + "type": "boolean" }, - "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\\.", - "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\\.", - "title": "Type", + "ObjectIdentifier": { + "type": "string" + }, + "Value": { "type": "string" } }, "required": [ - "Type", - "Properties" + "ObjectIdentifier", + "Value" ], - "title": "CloudWatchLogsEvent", "type": "object" }, - "CloudWatchLogsEventProperties": { + "AWS::ACMPCA::Certificate.EdiPartyName": { "additionalProperties": false, "properties": { - "FilterPattern": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.", - "markdownDescription": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.", - "title": "FilterPattern" + "NameAssigner": { + "type": "string" }, - "LogGroupName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.", - "markdownDescription": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.", - "title": "LogGroupName" + "PartyName": { + "type": "string" } }, "required": [ - "FilterPattern", - "LogGroupName" + "NameAssigner", + "PartyName" ], - "title": "CloudWatchLogsEventProperties", "type": "object" }, - "CodeUri": { + "AWS::ACMPCA::Certificate.ExtendedKeyUsage": { "additionalProperties": false, "properties": { - "Bucket": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Bucket" - }, - "Key": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "The Amazon S3 key of the deployment package\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.", - "markdownDescription": "The Amazon S3 key of the deployment package\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.", - "title": "Key" + "ExtendedKeyUsageObjectIdentifier": { + "type": "string" }, - "Version": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "For versioned objects, the version of the deployment package object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.", - "markdownDescription": "For versioned objects, the version of the deployment package object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.", - "title": "Version" + "ExtendedKeyUsageType": { + "type": "string" } }, - "required": [ - "Bucket", - "Key" - ], - "title": "CodeUri", "type": "object" }, - "CognitoAuthorizer": { + "AWS::ACMPCA::Certificate.Extensions": { "additionalProperties": false, "properties": { - "AuthorizationScopes": { - "description": "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\\.", + "CertificatePolicies": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyInformation" }, - "markdownDescription": "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\\.", - "title": "AuthorizationScopes", "type": "array" }, - "Identity": { - "allOf": [ - { - "$ref": "#/definitions/CognitoAuthorizerIdentity" - } - ], - "description": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Identity" + "CustomExtensions": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.CustomExtension" + }, + "type": "array" }, - "UserPoolArn": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer \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": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer \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": "UserPoolArn" + "ExtendedKeyUsage": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.ExtendedKeyUsage" + }, + "type": "array" + }, + "KeyUsage": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.KeyUsage" + }, + "SubjectAlternativeNames": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.GeneralName" + }, + "type": "array" } }, - "required": [ - "UserPoolArn" - ], - "title": "CognitoAuthorizer", "type": "object" }, - "CognitoAuthorizerIdentity": { + "AWS::ACMPCA::Certificate.GeneralName": { "additionalProperties": false, "properties": { - "Header": { - "description": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Header", + "DirectoryName": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Subject" + }, + "DnsName": { "type": "string" }, - "ReauthorizeEvery": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "integer" - } - ], - "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "ReauthorizeEvery" + "EdiPartyName": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.EdiPartyName" }, - "ValidationExpression": { - "description": "Specify a validation expression for validating the incoming Identity \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": "Specify a validation expression for validating the incoming Identity \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": "ValidationExpression", + "IpAddress": { + "type": "string" + }, + "OtherName": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.OtherName" + }, + "RegisteredId": { + "type": "string" + }, + "Rfc822Name": { + "type": "string" + }, + "UniformResourceIdentifier": { "type": "string" } }, - "title": "CognitoAuthorizerIdentity", "type": "object" }, - "CognitoEvent": { + "AWS::ACMPCA::Certificate.KeyUsage": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$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\\.", - "title": "Properties" + "CRLSign": { + "type": "boolean" }, - "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\\.", - "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\\.", - "title": "Type", + "DataEncipherment": { + "type": "boolean" + }, + "DecipherOnly": { + "type": "boolean" + }, + "DigitalSignature": { + "type": "boolean" + }, + "EncipherOnly": { + "type": "boolean" + }, + "KeyAgreement": { + "type": "boolean" + }, + "KeyCertSign": { + "type": "boolean" + }, + "KeyEncipherment": { + "type": "boolean" + }, + "NonRepudiation": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ACMPCA::Certificate.OtherName": { + "additionalProperties": false, + "properties": { + "TypeId": { + "type": "string" + }, + "Value": { "type": "string" } }, "required": [ - "Type", - "Properties" + "TypeId", + "Value" ], - "title": "CognitoEvent", "type": "object" }, - "CognitoEventProperties": { + "AWS::ACMPCA::Certificate.PolicyInformation": { "additionalProperties": false, "properties": { - "Trigger": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Lambda trigger configuration information for the new user pool\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.", - "markdownDescription": "The Lambda trigger configuration information for the new user pool\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.", - "title": "Trigger" + "CertPolicyId": { + "type": "string" }, - "UserPool": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "Reference to UserPool defined in the same template \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": "Reference to UserPool defined in the same template \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": "UserPool" + "PolicyQualifiers": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.PolicyQualifierInfo" + }, + "type": "array" } }, "required": [ - "Trigger", - "UserPool" + "CertPolicyId" ], - "title": "CognitoEventProperties", "type": "object" }, - "ContentUri": { + "AWS::ACMPCA::Certificate.PolicyQualifierInfo": { "additionalProperties": false, "properties": { - "Bucket": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon S3 bucket of the layer archive\\. \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-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", - "markdownDescription": "The Amazon S3 bucket of the layer archive\\. \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-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", - "title": "Bucket" - }, - "Key": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon S3 key of the layer archive\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", - "markdownDescription": "The Amazon S3 key of the layer archive\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", - "title": "Key" + "PolicyQualifierId": { + "type": "string" }, - "Version": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "For versioned objects, the version of the layer archive object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", - "markdownDescription": "For versioned objects, the version of the layer archive object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", - "title": "Version" + "Qualifier": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.Qualifier" } }, "required": [ - "Bucket", - "Key" + "PolicyQualifierId", + "Qualifier" ], - "title": "ContentUri", "type": "object" }, - "Cors": { + "AWS::ACMPCA::Certificate.Qualifier": { "additionalProperties": false, "properties": { - "AllowCredentials": { - "description": "Boolean indicating whether request is allowed to contain credentials\\. \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": "Boolean indicating whether request is allowed to contain credentials\\. \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": "AllowCredentials", - "type": "boolean" + "CpsUri": { + "type": "string" + } + }, + "required": [ + "CpsUri" + ], + "type": "object" + }, + "AWS::ACMPCA::Certificate.Subject": { + "additionalProperties": false, + "properties": { + "CommonName": { + "type": "string" }, - "AllowHeaders": { - "description": "String of headers to allow\\. \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": "String of headers to allow\\. \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": "AllowHeaders", + "Country": { "type": "string" }, - "AllowMethods": { - "description": "String containing the HTTP methods to allow\\. \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": "String containing the HTTP methods to allow\\. \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": "AllowMethods", + "CustomAttributes": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::Certificate.CustomAttribute" + }, + "type": "array" + }, + "DistinguishedNameQualifier": { "type": "string" }, - "AllowOrigin": { - "description": "String of origin to allow\\. \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": "String of origin to allow\\. \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": "AllowOrigin", + "GenerationQualifier": { "type": "string" }, - "MaxAge": { - "description": "String containing the number of seconds to cache CORS Preflight request\\. \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": "String containing the number of seconds to cache CORS Preflight request\\. \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": "MaxAge", + "GivenName": { + "type": "string" + }, + "Initials": { + "type": "string" + }, + "Locality": { + "type": "string" + }, + "Organization": { + "type": "string" + }, + "OrganizationalUnit": { + "type": "string" + }, + "Pseudonym": { + "type": "string" + }, + "SerialNumber": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Surname": { + "type": "string" + }, + "Title": { "type": "string" } }, - "required": [ - "AllowOrigin" - ], - "title": "Cors", "type": "object" }, - "DeadLetterQueue": { + "AWS::ACMPCA::Certificate.Validity": { "additionalProperties": false, "properties": { - "TargetArn": { - "description": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.", - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.", - "title": "TargetArn", - "type": "string" - }, "Type": { - "description": "The type of dead letter queue\\. \n*Valid values*: `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", - "SQS" - ], - "markdownDescription": "The type of dead letter queue\\. \n*Valid values*: `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" + }, + "Value": { + "type": "number" } }, "required": [ - "TargetArn", - "Type" + "Type", + "Value" ], - "title": "DeadLetterQueue", "type": "object" }, - "DeploymentPreference": { + "AWS::ACMPCA::CertificateAuthority": { "additionalProperties": false, "properties": { - "Alarms": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { "items": { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" } - ], - "description": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\. \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\. \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\\.", - "markdownDescription": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\. \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\. \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\\.", - "title": "Alarms" + ] }, - "Enabled": { - "anyOf": [ - { - "type": "object" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CsrExtensions": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CsrExtensions" }, - { - "type": "boolean" + "KeyAlgorithm": { + "type": "string" + }, + "KeyStorageSecurityStandard": { + "type": "string" + }, + "RevocationConfiguration": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.RevocationConfiguration" + }, + "SigningAlgorithm": { + "type": "string" + }, + "Subject": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + }, + "UsageMode": { + "type": "string" } + }, + "required": [ + "KeyAlgorithm", + "SigningAlgorithm", + "Subject", + "Type" ], - "description": "Whether this deployment preference is enabled\\. \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": "Whether this deployment preference is enabled\\. \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\\.", - "title": "Enabled" + "type": "object" }, - "Hooks": { - "allOf": [ - { - "$ref": "#/definitions/Hooks" - } + "Type": { + "enum": [ + "AWS::ACMPCA::CertificateAuthority" ], - "description": "Validation Lambda functions that are run before and after traffic shifting\\. \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Validation Lambda functions that are run before and after traffic shifting\\. \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Hooks" + "type": "string" }, - "PassthroughCondition": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "boolean" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to 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": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to 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": "PassthroughCondition" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.AccessDescription": { + "additionalProperties": false, + "properties": { + "AccessLocation": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.GeneralName" }, - "Role": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\. \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": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\. \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": "Role" + "AccessMethod": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessMethod" + } + }, + "required": [ + "AccessLocation", + "AccessMethod" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.AccessMethod": { + "additionalProperties": false, + "properties": { + "AccessMethodType": { + "type": "string" }, - "TriggerConfigurations": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "TriggerConfigurations" + "CustomObjectIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.CrlConfiguration": { + "additionalProperties": false, + "properties": { + "CustomCname": { + "type": "string" }, - "Type": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Type" + "Enabled": { + "type": "boolean" + }, + "ExpirationInDays": { + "type": "number" + }, + "S3BucketName": { + "type": "string" + }, + "S3ObjectAcl": { + "type": "string" } }, - "title": "DeploymentPreference", "type": "object" }, - "DynamoDBEvent": { + "AWS::ACMPCA::CertificateAuthority.CsrExtensions": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$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\\.", - "title": "Properties" + "KeyUsage": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.KeyUsage" }, - "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\\.", - "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\\.", - "title": "Type", + "SubjectInformationAccess": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.AccessDescription" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.CustomAttribute": { + "additionalProperties": false, + "properties": { + "ObjectIdentifier": { + "type": "string" + }, + "Value": { "type": "string" } }, "required": [ - "Type", - "Properties" + "ObjectIdentifier", + "Value" ], - "title": "DynamoDBEvent", "type": "object" }, - "DynamoDBEventProperties": { + "AWS::ACMPCA::CertificateAuthority.EdiPartyName": { "additionalProperties": false, "properties": { - "BatchSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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`", - "markdownDescription": "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`", - "title": "BatchSize" + "NameAssigner": { + "type": "string" }, - "BisectBatchOnFunctionError": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "BisectBatchOnFunctionError" + "PartyName": { + "type": "string" + } + }, + "required": [ + "NameAssigner", + "PartyName" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.GeneralName": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.Subject" }, - "DestinationConfig": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "DestinationConfig" + "DnsName": { + "type": "string" }, - "Enabled": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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" + "EdiPartyName": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.EdiPartyName" }, - "FilterCriteria": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + "IpAddress": { + "type": "string" }, - "FunctionResponseTypes": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "FunctionResponseTypes" + "OtherName": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OtherName" }, - "MaximumBatchingWindowInSeconds": { - "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" + "RegisteredId": { + "type": "string" }, - "MaximumRecordAgeInSeconds": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "MaximumRecordAgeInSeconds" + "Rfc822Name": { + "type": "string" }, - "MaximumRetryAttempts": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "MaximumRetryAttempts" + "UniformResourceIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.KeyUsage": { + "additionalProperties": false, + "properties": { + "CRLSign": { + "type": "boolean" }, - "ParallelizationFactor": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "ParallelizationFactor" + "DataEncipherment": { + "type": "boolean" }, - "StartingPosition": { - "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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" + "DecipherOnly": { + "type": "boolean" }, - "StartingPositionTimestamp": { - "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" + "DigitalSignature": { + "type": "boolean" }, - "Stream": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of the DynamoDB stream\\. \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 DynamoDB stream\\. \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": "Stream" + "EncipherOnly": { + "type": "boolean" }, - "TumblingWindowInSeconds": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "TumblingWindowInSeconds" + "KeyAgreement": { + "type": "boolean" + }, + "KeyCertSign": { + "type": "boolean" + }, + "KeyEncipherment": { + "type": "boolean" + }, + "NonRepudiation": { + "type": "boolean" } }, - "required": [ - "StartingPosition", - "Stream" - ], - "title": "DynamoDBEventProperties", "type": "object" }, - "EndpointConfiguration": { + "AWS::ACMPCA::CertificateAuthority.OcspConfiguration": { "additionalProperties": false, "properties": { - "Type": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The endpoint type of a REST API\\. \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", - "markdownDescription": "The endpoint type of a REST API\\. \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", - "title": "Type" + "Enabled": { + "type": "boolean" }, - "VPCEndpointIds": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", - "markdownDescription": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", - "title": "VPCEndpointIds" + "OcspCustomCname": { + "type": "string" } }, - "title": "EndpointConfiguration", "type": "object" }, - "EventInvokeConfig": { + "AWS::ACMPCA::CertificateAuthority.OtherName": { "additionalProperties": false, "properties": { - "DestinationConfig": { - "allOf": [ - { - "$ref": "#/definitions/EventInvokeDestinationConfig" - } - ], - "description": "A configuration object that specifies the destination of an event after Lambda processes it\\. \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.", - "markdownDescription": "A configuration object that specifies the destination of an event after Lambda processes it\\. \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.", - "title": "DestinationConfig" + "TypeId": { + "type": "string" }, - "MaximumEventAgeInSeconds": { - "description": "The maximum age of a request that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", - "markdownDescription": "The maximum age of a request that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", - "title": "MaximumEventAgeInSeconds", - "type": "integer" + "Value": { + "type": "string" + } + }, + "required": [ + "TypeId", + "Value" + ], + "type": "object" + }, + "AWS::ACMPCA::CertificateAuthority.RevocationConfiguration": { + "additionalProperties": false, + "properties": { + "CrlConfiguration": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CrlConfiguration" }, - "MaximumRetryAttempts": { - "description": "The maximum number of times to retry before the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", - "markdownDescription": "The maximum number of times to retry before the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", - "title": "MaximumRetryAttempts", - "type": "integer" + "OcspConfiguration": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.OcspConfiguration" } }, - "title": "EventInvokeConfig", "type": "object" }, - "EventInvokeDestinationConfig": { + "AWS::ACMPCA::CertificateAuthority.Subject": { "additionalProperties": false, "properties": { - "OnFailure": { - "allOf": [ - { - "$ref": "#/definitions/EventInvokeOnFailure" - } - ], - "description": "A destination for events that failed processing\\. \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.", - "markdownDescription": "A destination for events that failed processing\\. \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.", - "title": "OnFailure" + "CommonName": { + "type": "string" }, - "OnSuccess": { - "allOf": [ - { - "$ref": "#/definitions/EventInvokeOnSuccess" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "OnSuccess" + "Country": { + "type": "string" + }, + "CustomAttributes": { + "items": { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority.CustomAttribute" + }, + "type": "array" + }, + "DistinguishedNameQualifier": { + "type": "string" + }, + "GenerationQualifier": { + "type": "string" + }, + "GivenName": { + "type": "string" + }, + "Initials": { + "type": "string" + }, + "Locality": { + "type": "string" + }, + "Organization": { + "type": "string" + }, + "OrganizationalUnit": { + "type": "string" + }, + "Pseudonym": { + "type": "string" + }, + "SerialNumber": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Surname": { + "type": "string" + }, + "Title": { + "type": "string" } }, - "title": "EventInvokeDestinationConfig", "type": "object" }, - "EventInvokeOnFailure": { + "AWS::ACMPCA::CertificateAuthorityActivation": { "additionalProperties": false, "properties": { - "Destination": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Certificate": { + "type": "string" + }, + "CertificateAuthorityArn": { + "type": "string" + }, + "CertificateChain": { + "type": "string" + }, + "Status": { "type": "string" } + }, + "required": [ + "Certificate", + "CertificateAuthorityArn" ], - "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", - "title": "Destination" + "type": "object" }, "Type": { - "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", "enum": [ - "SQS", - "SNS", - "Lambda", - "EventBridge" + "AWS::ACMPCA::CertificateAuthorityActivation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", - "title": "Type", "type": "string" } }, - "title": "EventInvokeOnFailure", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "EventInvokeOnSuccess": { + "AWS::ACMPCA::Permission": { "additionalProperties": false, "properties": { - "Destination": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateAuthorityArn": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "SourceAccount": { "type": "string" } + }, + "required": [ + "Actions", + "CertificateAuthorityArn", + "Principal" ], - "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \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#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \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#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", - "title": "Destination" + "type": "object" }, "Type": { - "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", "enum": [ - "SQS", - "SNS", - "Lambda", - "EventBridge" + "AWS::ACMPCA::Permission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", - "title": "Type", "type": "string" } }, - "title": "EventInvokeOnSuccess", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "EventsScheduleProperties": { + "AWS::APS::RuleGroupsNamespace": { "additionalProperties": false, "properties": { - "DeadLetterConfig": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" - } + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "title": "DeadLetterConfig" + "type": "string" }, - "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", - "title": "Description" - }, - "Enabled": { - "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", - "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", - "title": "Enabled", - "type": "boolean" - }, - "Input": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "title": "Input" - }, - "Name": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", - "title": "Name" + ] }, - "RetryPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Workspace": { + "type": "string" } + }, + "required": [ + "Data", + "Name", + "Workspace" ], - "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "title": "RetryPolicy" + "type": "object" }, - "Schedule": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::APS::RuleGroupsNamespace" ], - "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", - "title": "Schedule" + "type": "string" }, - "State": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", - "title": "State" + "type": "string" } }, - "title": "EventsScheduleProperties", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "FunctionUrlConfig": { + "AWS::APS::Workspace": { "additionalProperties": false, "properties": { - "AuthType": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AlertManagerDefinition": { + "type": "string" + }, + "Alias": { "type": "string" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::APS::Workspace.LoggingConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::APS::Workspace" ], - "description": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide* \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.", - "markdownDescription": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide* \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.", - "title": "AuthType" + "type": "string" }, - "Cors": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\. \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.", - "markdownDescription": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\. \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.", - "title": "Cors" + "type": "string" } }, "required": [ - "AuthType" + "Type" ], - "title": "FunctionUrlConfig", "type": "object" }, - "Hooks": { + "AWS::APS::Workspace.LoggingConfiguration": { "additionalProperties": false, "properties": { - "PostTraffic": { + "LogGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AccessAnalyzer::Analyzer": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Lambda function that is run after traffic shifting\\. \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": "Lambda function that is run after traffic shifting\\. \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": "PostTraffic" + ] }, - "PreTraffic": { - "anyOf": [ - { - "type": "object" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AnalyzerName": { + "type": "string" }, - { + "ArchiveRules": { + "items": { + "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.ArchiveRule" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { "type": "string" } + }, + "required": [ + "Type" ], - "description": "Lambda function that is run before traffic shifting\\. \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": "Lambda function that is run before traffic shifting\\. \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": "PreTraffic" + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AccessAnalyzer::Analyzer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, - "title": "Hooks", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "HttpApiAuth": { + "AWS::AccessAnalyzer::Analyzer.ArchiveRule": { "additionalProperties": false, "properties": { - "AuthorizationScopes": { - "description": "The authorization scopes to apply to this API, path, and method\\. \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\. \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\\.", + "Filter": { "items": { - "type": "string" + "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer.Filter" }, - "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\. \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\\.", - "title": "AuthorizationScopes", "type": "array" }, - "Authorizer": { - "description": "The `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\. \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\. \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "RuleName": { "type": "string" } }, - "title": "HttpApiAuth", + "required": [ + "Filter", + "RuleName" + ], "type": "object" }, - "HttpApiEvent": { + "AWS::AccessAnalyzer::Analyzer.Filter": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$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\\.", - "title": "Properties" + "Contains": { + "items": { + "type": "string" + }, + "type": "array" }, - "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\\.", - "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\\.", - "title": "Type", + "Eq": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Exists": { + "type": "boolean" + }, + "Neq": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Property": { "type": "string" } }, "required": [ - "Type" + "Property" ], - "title": "HttpApiEvent", "type": "object" }, - "HttpApiEventProperties": { + "AWS::AmazonMQ::Broker": { "additionalProperties": false, "properties": { - "ApiId": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\. \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\. \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\. \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": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\. \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\. \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\. \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": "ApiId" - }, - "Auth": { - "allOf": [ - { - "$ref": "#/definitions/HttpApiAuth" - } - ], - "description": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\. \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\. \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Auth" - }, - "Method": { - "description": "HTTP method for which this function is invoked\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "HTTP method for which this function is invoked\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Method", + "Condition": { "type": "string" }, - "Path": { - "description": "Uri path for which this function is invoked\\. Must start with `/`\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Uri path for which this function is invoked\\. Must start with `/`\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Path", + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "PayloadFormatVersion": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Specifies the format of the payload sent to an integration\\. \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: String \n*Required*: No \n*Default*: 2\\.0 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specifies the format of the payload sent to an integration\\. \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: String \n*Required*: No \n*Default*: 2\\.0 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "PayloadFormatVersion" + ] }, - "RouteSettings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\. \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\. \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "RouteSettings" + "Metadata": { + "type": "object" }, - "TimeoutInMillis": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "integer" - } - ], - "description": "Custom timeout between 50 and 29,000 milliseconds\\. \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: Integer \n*Required*: No \n*Default*: 5000 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds\\. \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: Integer \n*Required*: No \n*Default*: 5000 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "TimeoutInMillis" - } - }, - "title": "HttpApiEventProperties", - "type": "object" - }, - "IoTRuleEvent": { - "additionalProperties": false, - "properties": { "Properties": { - "allOf": [ - { - "$ref": "#/definitions/IoTRuleEventProperties" + "additionalProperties": false, + "properties": { + "AuthenticationStrategy": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "BrokerName": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.ConfigurationId" + }, + "DeploymentMode": { + "type": "string" + }, + "EncryptionOptions": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.EncryptionOptions" + }, + "EngineType": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "HostInstanceType": { + "type": "string" + }, + "LdapServerMetadata": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.LdapServerMetadata" + }, + "Logs": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.LogList" + }, + "MaintenanceWindowStartTime": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.MaintenanceWindow" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StorageType": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.TagsEntry" + }, + "type": "array" + }, + "Users": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Broker.User" + }, + "type": "array" } + }, + "required": [ + "AutoMinorVersionUpgrade", + "BrokerName", + "DeploymentMode", + "EngineType", + "EngineVersion", + "HostInstanceType", + "PubliclyAccessible", + "Users" ], - "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\\.", - "title": "Properties" + "type": "object" }, "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\\.", "enum": [ - "IoTRule" + "AWS::AmazonMQ::Broker" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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\\.", - "title": "Type", "type": "string" } }, @@ -1179,598 +1319,460 @@ "Type", "Properties" ], - "title": "IoTRuleEvent", "type": "object" }, - "IoTRuleEventProperties": { + "AWS::AmazonMQ::Broker.ConfigurationId": { "additionalProperties": false, "properties": { - "AwsIotSqlVersion": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The version of the SQL rules engine to use when evaluating the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", - "markdownDescription": "The version of the SQL rules engine to use when evaluating the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", - "title": "AwsIotSqlVersion" + "Id": { + "type": "string" }, - "Sql": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", - "markdownDescription": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", - "title": "Sql" + "Revision": { + "type": "number" } }, "required": [ - "Sql" + "Id", + "Revision" ], - "title": "IoTRuleEventProperties", "type": "object" }, - "KinesisEvent": { + "AWS::AmazonMQ::Broker.EncryptionOptions": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$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\\.", - "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\\.", - "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\\.", - "title": "Type", + "KmsKeyId": { "type": "string" + }, + "UseAwsOwnedKey": { + "type": "boolean" } }, "required": [ - "Type", - "Properties" + "UseAwsOwnedKey" ], - "title": "KinesisEvent", "type": "object" }, - "KinesisEventProperties": { + "AWS::AmazonMQ::Broker.LdapServerMetadata": { "additionalProperties": false, "properties": { - "BatchSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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*: `10000`", - "markdownDescription": "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*: `10000`", - "title": "BatchSize" + "Hosts": { + "items": { + "type": "string" + }, + "type": "array" }, - "BisectBatchOnFunctionError": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "BisectBatchOnFunctionError" + "RoleBase": { + "type": "string" }, - "DestinationConfig": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "DestinationConfig" + "RoleName": { + "type": "string" }, - "Enabled": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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" + "RoleSearchMatching": { + "type": "string" }, - "FilterCriteria": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + "RoleSearchSubtree": { + "type": "boolean" }, - "FunctionResponseTypes": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "FunctionResponseTypes" + "ServiceAccountPassword": { + "type": "string" }, - "MaximumBatchingWindowInSeconds": { - "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" - }, - "MaximumRecordAgeInSeconds": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "MaximumRecordAgeInSeconds" - }, - "MaximumRetryAttempts": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "MaximumRetryAttempts" - }, - "ParallelizationFactor": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "ParallelizationFactor" + "ServiceAccountUsername": { + "type": "string" }, - "StartingPosition": { - "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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" + "UserBase": { + "type": "string" }, - "StartingPositionTimestamp": { - "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" + "UserRoleName": { + "type": "string" }, - "Stream": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\. \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 data stream or a stream consumer\\. \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": "Stream" + "UserSearchMatching": { + "type": "string" }, - "TumblingWindowInSeconds": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "TumblingWindowInSeconds" + "UserSearchSubtree": { + "type": "boolean" } }, "required": [ - "StartingPosition", - "Stream" + "Hosts", + "RoleBase", + "RoleSearchMatching", + "ServiceAccountPassword", + "ServiceAccountUsername", + "UserBase", + "UserSearchMatching" ], - "title": "KinesisEventProperties", "type": "object" }, - "LambdaAuthorizer": { + "AWS::AmazonMQ::Broker.LogList": { "additionalProperties": false, "properties": { - "AuthorizerPayloadFormatVersion": { - "anyOf": [ - { - "enum": [ - "1.0", - "2.0" - ], - "type": "string" - }, - { - "type": "number" - } - ], - "description": "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\\.", - "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" - }, - "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\\.", - "title": "EnableSimpleResponses", + "Audit": { "type": "boolean" }, - "FunctionArn": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\. \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \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 Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\. \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \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" + "General": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AmazonMQ::Broker.MaintenanceWindow": { + "additionalProperties": false, + "properties": { + "DayOfWeek": { + "type": "string" }, - "FunctionInvokeRole": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ], - "description": "The ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\. \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\. \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 ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\. \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\. \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": "FunctionInvokeRole" + "TimeOfDay": { + "type": "string" }, - "Identity": { - "allOf": [ - { - "$ref": "#/definitions/LambdaAuthorizerIdentity" - } - ], - "description": "Specifies an `IdentitySource` in an incoming request for an authorizer\\. \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specifies an `IdentitySource` in an incoming request for an authorizer\\. \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Identity" + "TimeZone": { + "type": "string" } }, "required": [ - "AuthorizerPayloadFormatVersion", - "FunctionArn" + "DayOfWeek", + "TimeOfDay", + "TimeZone" ], - "title": "LambdaAuthorizer", "type": "object" }, - "LambdaAuthorizerIdentity": { + "AWS::AmazonMQ::Broker.TagsEntry": { "additionalProperties": false, "properties": { - "Context": { - "description": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\. \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\\.", - "title": "Context", - "type": "array" + "Key": { + "type": "string" }, - "Headers": { - "description": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\. \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\\.", - "title": "Headers", - "type": "array" + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AmazonMQ::Broker.User": { + "additionalProperties": false, + "properties": { + "ConsoleAccess": { + "type": "boolean" }, - "QueryStrings": { - "description": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\. \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\\.", + "Groups": { "items": { "type": "string" }, - "markdownDescription": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\. \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\\.", - "title": "QueryStrings", "type": "array" }, - "ReauthorizeEvery": { - "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "ReauthorizeEvery", - "type": "integer" + "Password": { + "type": "string" }, - "StageVariables": { - "description": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\. \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\\.", - "title": "StageVariables", - "type": "array" + "Username": { + "type": "string" } }, - "title": "LambdaAuthorizerIdentity", + "required": [ + "Password", + "Username" + ], "type": "object" }, - "LambdaRequestAuthorizer": { + "AWS::AmazonMQ::Configuration": { "additionalProperties": false, "properties": { - "AuthorizationScopes": { - "description": "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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "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\\.", - "title": "AuthorizationScopes", - "type": "array" + "Condition": { + "type": "string" }, - "FunctionArn": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AuthenticationStrategy": { "type": "string" + }, + "Data": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineType": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AmazonMQ::Configuration.TagsEntry" + }, + "type": "array" } + }, + "required": [ + "Data", + "EngineType", + "EngineVersion", + "Name" ], - "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\\.", - "title": "FunctionArn" - }, - "FunctionInvokeRole": { - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "FunctionInvokeRole", - "type": "string" + "type": "object" }, - "FunctionPayloadType": { - "description": "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\\.", + "Type": { "enum": [ - "REQUEST" + "AWS::AmazonMQ::Configuration" ], - "markdownDescription": "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\\.", - "title": "FunctionPayloadType", "type": "string" }, - "Identity": { - "allOf": [ - { - "$ref": "#/definitions/LambdaRequestAuthorizerIdentity" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Identity" + "type": "string" } }, "required": [ - "FunctionArn" + "Type", + "Properties" ], - "title": "LambdaRequestAuthorizer", "type": "object" }, - "LambdaRequestAuthorizerIdentity": { + "AWS::AmazonMQ::Configuration.TagsEntry": { "additionalProperties": false, "properties": { - "Context": { - "description": "Converts the given context strings to the mapping expressions of format `context.contextString`\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "Converts the given context strings to the mapping expressions of format `context.contextString`\\. \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\\.", - "title": "Context", - "type": "array" - }, - "Headers": { - "description": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\. \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\\.", - "title": "Headers", - "type": "array" - }, - "QueryStrings": { - "description": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\. \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\\.", - "title": "QueryStrings", - "type": "array" - }, - "ReauthorizeEvery": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "integer" - } - ], - "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "ReauthorizeEvery" + "Key": { + "type": "string" }, - "StageVariables": { - "description": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\. \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\\.", - "title": "StageVariables", - "type": "array" + "Value": { + "type": "string" } }, - "title": "LambdaRequestAuthorizerIdentity", + "required": [ + "Key", + "Value" + ], "type": "object" }, - "LambdaTokenAuthorizer": { + "AWS::AmazonMQ::ConfigurationAssociation": { "additionalProperties": false, "properties": { - "AuthorizationScopes": { - "description": "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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "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\\.", - "title": "AuthorizationScopes", - "type": "array" + "Condition": { + "type": "string" }, - "FunctionArn": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Broker": { "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId" } + }, + "required": [ + "Broker", + "Configuration" ], - "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\\.", - "title": "FunctionArn" - }, - "FunctionInvokeRole": { - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "FunctionInvokeRole", - "type": "string" + "type": "object" }, - "FunctionPayloadType": { - "description": "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\\.", + "Type": { "enum": [ - "TOKEN" + "AWS::AmazonMQ::ConfigurationAssociation" ], - "markdownDescription": "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\\.", - "title": "FunctionPayloadType", "type": "string" }, - "Identity": { - "allOf": [ - { - "$ref": "#/definitions/LambdaTokenAuthorizerIdentity" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Identity" + "type": "string" } }, "required": [ - "FunctionArn" + "Type", + "Properties" ], - "title": "LambdaTokenAuthorizer", "type": "object" }, - "LambdaTokenAuthorizerIdentity": { + "AWS::AmazonMQ::ConfigurationAssociation.ConfigurationId": { "additionalProperties": false, "properties": { - "Header": { - "description": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Header", + "Id": { "type": "string" }, - "ReauthorizeEvery": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "integer" - } - ], - "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "ReauthorizeEvery" - }, - "ValidationExpression": { - "description": "Specify a validation expression for validating the incoming Identity\\. \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": "Specify a validation expression for validating the incoming Identity\\. \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": "ValidationExpression", - "type": "string" + "Revision": { + "type": "number" } }, - "title": "LambdaTokenAuthorizerIdentity", + "required": [ + "Id", + "Revision" + ], "type": "object" }, - "Location": { + "AWS::Amplify::App": { "additionalProperties": false, "properties": { - "ApplicationId": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The Amazon Resource Name \\(ARN\\) of the application\\. \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 Amazon Resource Name \\(ARN\\) of the application\\. \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": "ApplicationId" + "type": "string" }, - "SemanticVersion": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The semantic version of the application\\. \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 semantic version of the application\\. \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": "SemanticVersion" - } - }, - "required": [ - "ApplicationId", - "SemanticVersion" - ], - "title": "Location", - "type": "object" - }, - "MQEvent": { - "additionalProperties": false, - "properties": { + ] + }, + "Metadata": { + "type": "object" + }, "Properties": { - "allOf": [ - { - "$ref": "#/definitions/MQEventProperties" + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "AutoBranchCreationConfig": { + "$ref": "#/definitions/AWS::Amplify::App.AutoBranchCreationConfig" + }, + "BasicAuthConfig": { + "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig" + }, + "BuildSpec": { + "type": "string" + }, + "CustomHeaders": { + "type": "string" + }, + "CustomRules": { + "items": { + "$ref": "#/definitions/AWS::Amplify::App.CustomRule" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "EnableBranchAutoDeletion": { + "type": "boolean" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable" + }, + "type": "array" + }, + "IAMServiceRole": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OauthToken": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "Repository": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } + }, + "required": [ + "Name" ], - "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\\.", - "title": "Properties" + "type": "object" }, "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\\.", "enum": [ - "MQ" + "AWS::Amplify::App" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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\\.", - "title": "Type", "type": "string" } }, @@ -1778,2083 +1780,2145 @@ "Type", "Properties" ], - "title": "MQEvent", "type": "object" }, - "MQEventProperties": { + "AWS::Amplify::App.AutoBranchCreationConfig": { "additionalProperties": false, "properties": { - "BatchSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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*: `10000`", - "markdownDescription": "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*: `10000`", - "title": "BatchSize" + "AutoBranchCreationPatterns": { + "items": { + "type": "string" + }, + "type": "array" }, - "Broker": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of the Amazon MQ broker\\. \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 MQ broker\\. \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": "Broker" + "BasicAuthConfig": { + "$ref": "#/definitions/AWS::Amplify::App.BasicAuthConfig" }, - "Enabled": { - "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" + "BuildSpec": { + "type": "string" }, - "FilterCriteria": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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" + "EnableAutoBranchCreation": { + "type": "boolean" }, - "MaximumBatchingWindowInSeconds": { - "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" + "EnableAutoBuild": { + "type": "boolean" }, - "Queues": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the Amazon MQ broker destination queue to consume\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The name of the Amazon MQ broker destination queue to consume\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "Queues" + "EnablePerformanceMode": { + "type": "boolean" }, - "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't included 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't 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't included 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't have an AWS CloudFormation equivalent\\.", - "title": "SecretsManagerKmsKeyId", + "EnablePullRequestPreview": { + "type": "boolean" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::Amplify::App.EnvironmentVariable" + }, + "type": "array" + }, + "Framework": { "type": "string" }, - "SourceAccessConfigurations": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "An array of the authentication protocol or vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\. \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+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` 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 vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\. \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+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` 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" + "PullRequestEnvironmentName": { + "type": "string" + }, + "Stage": { + "type": "string" } }, - "required": [ - "Broker", - "Queues", - "SourceAccessConfigurations" - ], - "title": "MQEventProperties", "type": "object" }, - "MSKEvent": { + "AWS::Amplify::App.BasicAuthConfig": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$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\\.", - "title": "Properties" + "EnableBasicAuth": { + "type": "boolean" }, - "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\\.", - "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\\.", - "title": "Type", + "Password": { + "type": "string" + }, + "Username": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], - "title": "MSKEvent", "type": "object" }, - "MSKEventProperties": { + "AWS::Amplify::App.CustomRule": { "additionalProperties": false, "properties": { - "ConsumerGroupId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "ConsumerGroupId" - }, - "FilterCriteria": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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" - }, - "MaximumBatchingWindowInSeconds": { - "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" - }, - "SourceAccessConfigurations": { - "$ref": "#/definitions/PassThroughProp" - }, - "StartingPosition": { - "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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" + "Condition": { + "type": "string" }, - "StartingPositionTimestamp": { - "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" + "Source": { + "type": "string" }, - "Stream": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\. \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 data stream or a stream consumer\\. \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": "Stream" + "Status": { + "type": "string" }, - "Topics": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "Topics" + "Target": { + "type": "string" } }, "required": [ - "StartingPosition", - "Stream", - "Topics" + "Source", + "Target" ], - "title": "MSKEventProperties", "type": "object" }, - "OAuth2Authorizer": { + "AWS::Amplify::App.EnvironmentVariable": { "additionalProperties": false, "properties": { - "AuthorizationScopes": { - "description": "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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "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\\.", - "title": "AuthorizationScopes", - "type": "array" - }, - "IdentitySource": { - "description": "Identity source expression for this 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\\.", - "markdownDescription": "Identity source expression for this 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\\.", - "title": "IdentitySource", + "Name": { "type": "string" }, - "JwtConfiguration": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "JWT configuration for this authorizer\\. \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "JWT configuration for this authorizer\\. \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "JwtConfiguration" + "Value": { + "type": "string" } }, - "title": "OAuth2Authorizer", + "required": [ + "Name", + "Value" + ], "type": "object" }, - "PassThroughProp": { - "title": "PassThroughProp" - }, - "PrimaryKey": { + "AWS::Amplify::Branch": { "additionalProperties": false, "properties": { - "Name": { - "allOf": [ + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AppId": { + "type": "string" + }, + "BasicAuthConfig": { + "$ref": "#/definitions/AWS::Amplify::Branch.BasicAuthConfig" + }, + "BranchName": { + "type": "string" + }, + "BuildSpec": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnableAutoBuild": { + "type": "boolean" + }, + "EnablePerformanceMode": { + "type": "boolean" + }, + "EnablePullRequestPreview": { + "type": "boolean" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::Amplify::Branch.EnvironmentVariable" + }, + "type": "array" + }, + "Framework": { + "type": "string" + }, + "PullRequestEnvironmentName": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } + }, + "required": [ + "AppId", + "BranchName" ], - "description": "Attribute name of the primary key\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\. \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.", - "markdownDescription": "Attribute name of the primary key\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\. \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.", - "title": "Name" + "type": "object" }, "Type": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "enum": [ + "AWS::Amplify::Branch" ], - "description": "The data type for the primary key\\. \n*Valid values*: `String`, `Number`, `Binary` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.", - "markdownDescription": "The data type for the primary key\\. \n*Valid values*: `String`, `Number`, `Binary` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.", - "title": "Type" + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, "required": [ - "Name", - "Type" + "Type", + "Properties" ], - "title": "PrimaryKey", "type": "object" }, - "Ref": { + "AWS::Amplify::Branch.BasicAuthConfig": { "additionalProperties": false, "properties": { - "Ref": { - "title": "Ref", + "EnableBasicAuth": { + "type": "boolean" + }, + "Password": { + "type": "string" + }, + "Username": { "type": "string" } }, "required": [ - "Ref" + "Password", + "Username" ], - "title": "Ref", "type": "object" }, - "RequestModel": { + "AWS::Amplify::Branch.EnvironmentVariable": { "additionalProperties": false, "properties": { - "Model": { - "description": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.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\\.", - "markdownDescription": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.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\\.", - "title": "Model", + "Name": { "type": "string" }, - "Required": { - "description": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\. \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": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\. \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": "Required", - "type": "boolean" - }, - "ValidateBody": { - "description": "Specifies whether API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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 API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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": "ValidateBody", - "type": "boolean" - }, - "ValidateParameters": { - "description": "Specifies whether API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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 API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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": "ValidateParameters", - "type": "boolean" + "Value": { + "type": "string" } }, "required": [ - "Model" + "Name", + "Value" ], - "title": "RequestModel", "type": "object" }, - "RequestParameters": { + "AWS::Amplify::Domain": { "additionalProperties": false, "properties": { - "Caching": { - "description": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Caching", - "type": "boolean" + "Condition": { + "type": "string" }, - "Required": { - "description": "This field specifies whether a parameter is required \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "This field specifies whether a parameter is required \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Required", - "type": "boolean" - } - }, - "title": "RequestParameters", - "type": "object" - }, - "ResourceReference": { - "additionalProperties": false, - "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" - }, - "Id": { - "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", "type": "string" }, - "Name": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" - }, - "Qualifier": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "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\\.", - "title": "Qualifier" + ] }, - "QueueUrl": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + "Metadata": { + "type": "object" }, - "ResourceId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "AppId": { + "type": "string" + }, + "AutoSubDomainCreationPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AutoSubDomainIAMRole": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EnableAutoSubDomain": { + "type": "boolean" + }, + "SubDomainSettings": { + "items": { + "$ref": "#/definitions/AWS::Amplify::Domain.SubDomainSetting" + }, + "type": "array" } + }, + "required": [ + "AppId", + "DomainName", + "SubDomainSettings" ], - "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + "type": "object" }, - "RoleName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::Amplify::Domain" ], - "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + "type": "string" }, - "Type": { - "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" } }, - "title": "ResourceReference", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "S3Event": { + "AWS::Amplify::Domain.SubDomainSetting": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$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\\.", - "title": "Properties" + "BranchName": { + "type": "string" }, - "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\\.", - "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\\.", - "title": "Type", + "Prefix": { "type": "string" } }, "required": [ - "Properties", - "Type" + "BranchName", + "Prefix" ], - "title": "S3Event", "type": "object" }, - "S3EventProperties": { + "AWS::AmplifyUIBuilder::Component": { "additionalProperties": false, "properties": { - "Bucket": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "S3 bucket name\\. This bucket must exist in the same template\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template", - "markdownDescription": "S3 bucket name\\. This bucket must exist in the same template\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template", - "title": "Bucket" + ] }, - "Events": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "BindingProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue" + } + }, + "type": "object" + }, + "Children": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild" + }, + "type": "array" + }, + "CollectionProperties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration" + } + }, + "type": "object" + }, + "ComponentType": { + "type": "string" + }, + "Events": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent" + } + }, + "type": "object" + }, + "Name": { + "type": "string" + }, + "Overrides": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "type": "object" + }, + "SchemaVersion": { + "type": "string" + }, + "SourceId": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Variants": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentVariant" + }, + "type": "array" } + }, + "required": [ + "BindingProperties", + "ComponentType", + "Name", + "Overrides", + "Properties", + "Variants" ], - "description": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\. \n*Type*: String \\| List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", - "markdownDescription": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\. \n*Type*: String \\| List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", - "title": "Events" + "type": "object" }, - "Filter": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::AmplifyUIBuilder::Component" ], - "description": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\. \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", - "markdownDescription": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\. \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", - "title": "Filter" + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, "required": [ - "Bucket", - "Events" + "Type", + "Properties" ], - "title": "S3EventProperties", "type": "object" }, - "SNSEvent": { + "AWS::AmplifyUIBuilder::Component.ActionParameters": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$ref": "#/definitions/SNSEventProperties" + "Anchor": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + }, + "Fields": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" } - ], - "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\\.", - "title": "Properties" + }, + "type": "object" + }, + "Global": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + }, + "Id": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + }, + "Model": { + "type": "string" + }, + "State": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter" + }, + "Target": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + }, + "Type": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + }, + "Url": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValue": { + "additionalProperties": false, + "properties": { + "BindingProperties": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties" + }, + "DefaultValue": { + "type": "string" }, "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\\.", - "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\\.", - "title": "Type", "type": "string" } }, - "required": [ - "Properties", - "Type" - ], - "title": "SNSEvent", "type": "object" }, - "SNSEventProperties": { + "AWS::AmplifyUIBuilder::Component.ComponentBindingPropertiesValueProperties": { "additionalProperties": false, "properties": { - "FilterPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "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" + "Bucket": { + "type": "string" }, - "Region": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, CloudFormation uses the region of the caller as the default\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.", - "markdownDescription": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, CloudFormation uses the region of the caller as the default\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.", - "title": "Region" + "DefaultValue": { + "type": "string" }, - "SqsSubscription": { - "anyOf": [ - { - "type": "boolean" - }, - { - "$ref": "#/definitions/SqsSubscription" - } - ], - "description": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\. \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\. \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "SqsSubscription" + "Field": { + "type": "string" }, - "Topic": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of the topic to subscribe to\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.", - "markdownDescription": "The ARN of the topic to subscribe to\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.", - "title": "Topic" + "Key": { + "type": "string" + }, + "Model": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" + }, + "type": "array" + }, + "UserAttribute": { + "type": "string" } }, - "required": [ - "Topic" - ], - "title": "SNSEventProperties", "type": "object" }, - "SQSEvent": { + "AWS::AmplifyUIBuilder::Component.ComponentChild": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$ref": "#/definitions/SQSEventProperties" + "Children": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentChild" + }, + "type": "array" + }, + "ComponentType": { + "type": "string" + }, + "Events": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentEvent" } - ], - "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\\.", - "title": "Properties" + }, + "type": "object" }, - "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\\.", - "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\\.", - "title": "Type", + "Name": { "type": "string" + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "type": "object" } }, "required": [ - "Type", + "ComponentType", + "Name", "Properties" ], - "title": "SQSEvent", "type": "object" }, - "SQSEventProperties": { + "AWS::AmplifyUIBuilder::Component.ComponentConditionProperty": { "additionalProperties": false, "properties": { - "BatchSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*Default*: 10 \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*: `10000`", - "markdownDescription": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*Default*: 10 \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*: `10000`", - "title": "BatchSize" + "Else": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" }, - "Enabled": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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" + "Field": { + "type": "string" }, - "FilterCriteria": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + "Operand": { + "type": "string" }, - "MaximumBatchingWindowInSeconds": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum amount of time, in seconds, to gather records before invoking the function\\. \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, in seconds, to gather records before invoking the function\\. \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" + "OperandType": { + "type": "string" }, - "Queue": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of the queue\\. \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 ARN of the queue\\. \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": "Queue" + "Operator": { + "type": "string" }, - "ScalingConfig": { - "$ref": "#/definitions/PassThroughProp" + "Property": { + "type": "string" + }, + "Then": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentDataConfiguration": { + "additionalProperties": false, + "properties": { + "Identifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Model": { + "type": "string" + }, + "Predicate": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" + }, + "Sort": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.SortProperty" + }, + "type": "array" } }, "required": [ - "Queue" + "Model" ], - "title": "SQSEventProperties", "type": "object" }, - "ScheduleEventProperties": { + "AWS::AmplifyUIBuilder::Component.ComponentEvent": { "additionalProperties": false, "properties": { - "DeadLetterConfig": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" - } - ], - "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "title": "DeadLetterConfig" + "Action": { + "type": "string" }, - "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Parameters": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ActionParameters" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.ComponentProperty": { + "additionalProperties": false, + "properties": { + "BindingProperties": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties" + }, + "Bindings": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.FormBindingElement" } - ], - "description": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", - "title": "Description" + }, + "type": "object" }, - "Enabled": { - "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", - "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", - "title": "Enabled", + "CollectionBindingProperties": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties" + }, + "ComponentName": { + "type": "string" + }, + "Concat": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + }, + "type": "array" + }, + "Condition": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentConditionProperty" + }, + "Configured": { "type": "boolean" }, - "Input": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "title": "Input" + "DefaultValue": { + "type": "string" }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", - "title": "Name" + "Event": { + "type": "string" }, - "RetryPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "title": "RetryPolicy" + "ImportedValue": { + "type": "string" }, - "Schedule": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", - "title": "Schedule" + "Model": { + "type": "string" }, - "State": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", - "title": "State" + "Property": { + "type": "string" }, - "Target": { - "$ref": "#/definitions/ScheduleTarget" + "Type": { + "type": "string" + }, + "UserAttribute": { + "type": "string" + }, + "Value": { + "type": "string" } }, - "title": "ScheduleEventProperties", "type": "object" }, - "ScheduleTarget": { + "AWS::AmplifyUIBuilder::Component.ComponentPropertyBindingProperties": { "additionalProperties": false, "properties": { - "Id": { - "$ref": "#/definitions/PassThroughProp" + "Field": { + "type": "string" + }, + "Property": { + "type": "string" } }, "required": [ - "Id" + "Property" ], - "title": "ScheduleTarget", "type": "object" }, - "SelfManagedKafkaEvent": { + "AWS::AmplifyUIBuilder::Component.ComponentVariant": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$ref": "#/definitions/SelfManagedKafkaEventProperties" + "Overrides": { + "type": "object" + }, + "VariantValues": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" } - ], - "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\\.", - "title": "Properties" + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.FormBindingElement": { + "additionalProperties": false, + "properties": { + "Element": { + "type": "string" }, - "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\\.", - "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\\.", - "title": "Type", + "Property": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Element", + "Property" ], - "title": "SelfManagedKafkaEvent", "type": "object" }, - "SelfManagedKafkaEventProperties": { + "AWS::AmplifyUIBuilder::Component.MutationActionSetStateParameter": { "additionalProperties": false, "properties": { - "BatchSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\. \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*: `10000`", - "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\. \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*: `10000`", - "title": "BatchSize" + "ComponentName": { + "type": "string" }, - "ConsumerGroupId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "ConsumerGroupId" + "Property": { + "type": "string" }, - "Enabled": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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" + "Set": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.ComponentProperty" + } + }, + "required": [ + "ComponentName", + "Property", + "Set" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.Predicate": { + "additionalProperties": false, + "properties": { + "And": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" + }, + "type": "array" }, - "FilterCriteria": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + "Field": { + "type": "string" }, - "KafkaBootstrapServers": { - "description": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx` \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\\.", + "Operand": { + "type": "string" + }, + "Operator": { + "type": "string" + }, + "Or": { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component.Predicate" }, - "markdownDescription": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx` \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\\.", - "title": "KafkaBootstrapServers", "type": "array" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Component.SortProperty": { + "additionalProperties": false, + "properties": { + "Direction": { + "type": "string" }, - "SourceAccessConfigurations": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) \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, VPC components, or virtual host to secure and define your event source\\. \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) \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" - }, - "Topics": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "markdownDescription": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", - "title": "Topics" + "Field": { + "type": "string" } }, "required": [ - "SourceAccessConfigurations", - "Topics" + "Direction", + "Field" ], - "title": "SelfManagedKafkaEventProperties", "type": "object" }, - "SqsSubscription": { + "AWS::AmplifyUIBuilder::Form": { "additionalProperties": false, "properties": { - "BatchSize": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The maximum number of items to retrieve in a single batch for the SQS queue\\. \n*Type*: String \n*Required*: No \n*Default*: 10 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The maximum number of items to retrieve in a single batch for the SQS queue\\. \n*Type*: String \n*Required*: No \n*Default*: 10 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "BatchSize" + ] }, - "Enabled": { - "description": "Disables the SQS event source mapping to pause polling and invocation\\. \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": "Disables the SQS event source mapping to pause polling and invocation\\. \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\\.", - "title": "Enabled", - "type": "boolean" + "Metadata": { + "type": "object" }, - "QueueArn": { - "anyOf": [ - { + "Properties": { + "additionalProperties": false, + "properties": { + "AppId": { + "type": "string" + }, + "Cta": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormCTA" + }, + "DataType": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormDataTypeConfig" + }, + "EnvironmentName": { + "type": "string" + }, + "Fields": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldConfig" + } + }, "type": "object" }, - { + "FormActionType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SchemaVersion": { "type": "string" + }, + "SectionalElements": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.SectionalElement" + } + }, + "type": "object" + }, + "Style": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyle" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" } + }, + "required": [ + "DataType", + "Fields", + "FormActionType", + "Name", + "SchemaVersion", + "SectionalElements", + "Style" ], - "description": "Specify an existing SQS queue arn\\. \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 an existing SQS queue arn\\. \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": "QueueArn" + "type": "object" }, - "QueuePolicyLogicalId": { - "description": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\. \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": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\. \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": "QueuePolicyLogicalId", + "Type": { + "enum": [ + "AWS::AmplifyUIBuilder::Form" + ], "type": "string" }, - "QueueUrl": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Specify the queue URL associated with the `QueueArn` property\\. \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 queue URL associated with the `QueueArn` property\\. \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": "QueueUrl" + "type": "string" } }, "required": [ - "QueueArn", - "QueueUrl" + "Type", + "Properties" ], - "title": "SqsSubscription", "type": "object" }, - "UsagePlan": { + "AWS::AmplifyUIBuilder::Form.FieldConfig": { "additionalProperties": false, "properties": { - "CreateUsagePlan": { - "anyOf": [ - { - "type": "object" - }, - { - "enum": [ - "PER_API", - "SHARED", - "NONE" - ], - "type": "string" - } - ], - "description": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\. \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `UsagePlan`, `ApiKey`, and `UsagePlanKey`, respectively\\. \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\. \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\. \n*Valid values*: `PER_API`, `SHARED`, and `NONE` \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": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\. \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `UsagePlan`, `ApiKey`, and `UsagePlanKey`, respectively\\. \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\. \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\. \n*Valid values*: `PER_API`, `SHARED`, and `NONE` \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": "CreateUsagePlan" + "Excluded": { + "type": "boolean" }, - "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A description of the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "markdownDescription": "A description of the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "title": "Description" + "InputType": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldInputConfig" }, - "Quota": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Configures the number of requests that users can make within a given interval\\. \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "markdownDescription": "Configures the number of requests that users can make within a given interval\\. \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "title": "Quota" + "Label": { + "type": "string" }, - "Tags": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "title": "Tags" + "Position": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" }, - "Throttle": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "markdownDescription": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "title": "Throttle" + "Validations": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FieldInputConfig": { + "additionalProperties": false, + "properties": { + "DefaultChecked": { + "type": "boolean" }, - "UsagePlanName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A name for the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "markdownDescription": "A name for the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.", - "title": "UsagePlanName" + "DefaultCountryCode": { + "type": "string" + }, + "DefaultValue": { + "type": "string" + }, + "DescriptiveText": { + "type": "string" + }, + "MaxValue": { + "type": "number" + }, + "MinValue": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Placeholder": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Step": { + "type": "number" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + }, + "ValueMappings": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.ValueMappings" } }, "required": [ - "CreateUsagePlan" + "Type" ], - "title": "UsagePlan", "type": "object" }, - "__main____Globals": { + "AWS::AmplifyUIBuilder::Form.FieldPosition": { "additionalProperties": false, "properties": { - "Api": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Globals" - }, - "Function": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Globals" + "Below": { + "type": "string" }, - "HttpApi": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Globals" + "Fixed": { + "type": "string" }, - "SimpleTable": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Globals" + "RightOf": { + "type": "string" } }, - "title": "Globals", "type": "object" }, - "samtranslator__schema__any_cfn_resource__Resource": { + "AWS::AmplifyUIBuilder::Form.FieldValidationConfiguration": { + "additionalProperties": false, "properties": { + "NumValues": { + "items": { + "type": "number" + }, + "type": "array" + }, + "StrValues": { + "items": { + "type": "string" + }, + "type": "array" + }, "Type": { - "pattern": "^(?!AWS::Serverless::).+$", - "title": "Type", + "type": "string" + }, + "ValidationMessage": { "type": "string" } }, "required": [ "Type" ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Auth": { + "AWS::AmplifyUIBuilder::Form.FormButton": { "additionalProperties": false, "properties": { - "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\\.", - "title": "AddDefaultAuthorizerToCorsPreflight", - "type": "boolean" + "Children": { + "type": "string" }, - "ApiKeyRequired": { - "description": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \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": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \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": "ApiKeyRequired", + "Excluded": { "type": "boolean" }, - "Authorizers": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/definitions/CognitoAuthorizer" - }, - { - "$ref": "#/definitions/LambdaTokenAuthorizer" - }, - { - "$ref": "#/definitions/LambdaRequestAuthorizer" - } - ] - }, - "description": "The authorizer used to control access to your API Gateway API\\. \nFor more information, 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*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.", - "markdownDescription": "The authorizer used to control access to your API Gateway API\\. \nFor more information, 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*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.", - "title": "Authorizers", - "type": "object" + "Position": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormCTA": { + "additionalProperties": false, + "properties": { + "Cancel": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" }, - "DefaultAuthorizer": { - "description": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\. \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\. \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "DefaultAuthorizer", + "Clear": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" + }, + "Position": { "type": "string" }, - "InvokeRole": { - "description": "Sets integration credentials for all resources and methods to this value\\. \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\. \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn` \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Sets integration credentials for all resources and methods to this value\\. \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\. \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn` \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "InvokeRole", + "Submit": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormButton" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormDataTypeConfig": { + "additionalProperties": false, + "properties": { + "DataSourceType": { "type": "string" }, - "ResourcePolicy": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__ResourcePolicy" - } - ], - "description": "Configure Resource Policy for all methods and paths on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.", - "markdownDescription": "Configure Resource Policy for all methods and paths on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.", - "title": "ResourcePolicy" + "DataTypeName": { + "type": "string" + } + }, + "required": [ + "DataSourceType", + "DataTypeName" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormInputValueProperty": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.FormStyle": { + "additionalProperties": false, + "properties": { + "HorizontalGap": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig" }, - "UsagePlan": { - "allOf": [ - { - "$ref": "#/definitions/UsagePlan" - } - ], - "description": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. 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*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. 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*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "UsagePlan" + "OuterPadding": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig" + }, + "VerticalGap": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormStyleConfig" } }, - "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_api__DefinitionUri": { + "AWS::AmplifyUIBuilder::Form.FormStyleConfig": { "additionalProperties": false, "properties": { - "Bucket": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", - "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", - "title": "Bucket" + "TokenReference": { + "type": "string" }, - "Key": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", - "markdownDescription": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", - "title": "Key" + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.SectionalElement": { + "additionalProperties": false, + "properties": { + "Level": { + "type": "number" }, - "Version": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", - "markdownDescription": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", - "title": "Version" + "Orientation": { + "type": "string" + }, + "Position": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FieldPosition" + }, + "Text": { + "type": "string" + }, + "Type": { + "type": "string" } }, "required": [ - "Bucket", - "Key" + "Type" ], - "title": "DefinitionUri", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Domain": { + "AWS::AmplifyUIBuilder::Form.ValueMapping": { "additionalProperties": false, "properties": { - "BasePath": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.", - "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.", - "title": "BasePath" + "DisplayValue": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormInputValueProperty" }, - "CertificateArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\. \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.", - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\. \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.", - "title": "CertificateArn" + "Value": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.FormInputValueProperty" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Form.ValueMappings": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form.ValueMapping" + }, + "type": "array" + } + }, + "required": [ + "Values" + ], + "type": "object" + }, + "AWS::AmplifyUIBuilder::Theme": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "DomainName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.", - "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.", - "title": "DomainName" + "type": "string" }, - "EndpointConfiguration": { + "DependsOn": { "anyOf": [ { - "type": "object" - }, - { - "enum": [ - "REGIONAL", - "EDGE" - ], + "pattern": "^[a-zA-Z0-9]+$", "type": "string" - } - ], - "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \n*Valid values*: `REGIONAL` or `EDGE` \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \n*Valid values*: `REGIONAL` or `EDGE` \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "EndpointConfiguration" - }, - "MutualTlsAuthentication": { - "allOf": [ + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.", - "markdownDescription": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.", - "title": "MutualTlsAuthentication" + ] }, - "NormalizeBasePath": { - "description": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\. \nUse `NormalizeBasePath` with the `BasePath` property\\. \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": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\. \nUse `NormalizeBasePath` with the `BasePath` property\\. \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\\.", - "title": "NormalizeBasePath", - "type": "boolean" + "Metadata": { + "type": "object" }, - "OwnershipVerificationCertificateArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Values": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" + }, + "type": "array" } + }, + "required": [ + "Name", + "Values" ], - "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.", - "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.", - "title": "OwnershipVerificationCertificateArn" + "type": "object" }, - "Route53": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Route53" - } + "Type": { + "enum": [ + "AWS::AmplifyUIBuilder::Theme" ], - "description": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Route53" + "type": "string" }, - "SecurityPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The TLS version plus cipher suite for this domain name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.", - "markdownDescription": "The TLS version plus cipher suite for this domain name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.", - "title": "SecurityPolicy" + "type": "string" } }, "required": [ - "CertificateArn", - "DomainName" + "Type", + "Properties" ], - "title": "Domain", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Globals": { + "AWS::AmplifyUIBuilder::Theme.ThemeValue": { "additionalProperties": false, "properties": { - "AccessLogSetting": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "AccessLogSetting" + "Children": { + "items": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValues" + }, + "type": "array" }, - "Auth": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Auth" + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AmplifyUIBuilder::Theme.ThemeValues": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" }, - "BinaryMediaTypes": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Value": { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme.ThemeValue" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Account": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "BinaryMediaTypes" + "type": "string" }, - "CacheClusterEnabled": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "CacheClusterEnabled" + ] }, - "CacheClusterSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CloudWatchRoleArn": { + "type": "string" } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::Account" ], - "description": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "CacheClusterSize" + "type": "string" }, - "CanarySetting": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "CanarySetting" + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::ApiKey": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "Cors": { + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { "anyOf": [ { - "type": "object" - }, - { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, { - "$ref": "#/definitions/Cors" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Cors" + ] }, - "DefinitionUri": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", - "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", - "title": "DefinitionUri" + "Metadata": { + "type": "object" }, - "Domain": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + "Properties": { + "additionalProperties": false, + "properties": { + "CustomerId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "GenerateDistinctId": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "StageKeys": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::ApiKey.StageKey" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Value": { + "type": "string" } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::ApiKey" ], - "description": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Domain" + "type": "string" }, - "EndpointConfiguration": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", - "markdownDescription": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", - "title": "EndpointConfiguration" + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::ApiKey.StageKey": { + "additionalProperties": false, + "properties": { + "RestApiId": { + "type": "string" }, - "GatewayResponses": { - "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "GatewayResponses", - "type": "object" + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Authorizer": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "MethodSettings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "MethodSettings" + "type": "string" }, - "MinimumCompressionSize": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "MinimumCompressionSize" - }, - "Name": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "Name" + ] }, - "OpenApiVersion": { - "anyOf": [ - { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AuthType": { + "type": "string" + }, + "AuthorizerCredentials": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { "type": "number" }, - { + "AuthorizerUri": { + "type": "string" + }, + "IdentitySource": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProviderARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RestApiId": { + "type": "string" + }, + "Type": { "type": "string" } + }, + "required": [ + "Name", + "RestApiId", + "Type" ], - "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "OpenApiVersion" + "type": "object" }, - "TracingEnabled": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::Authorizer" ], - "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "TracingEnabled" + "type": "string" }, - "Variables": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "Variables" + "type": "string" } }, - "title": "Globals", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_api__Properties": { + "AWS::ApiGateway::BasePathMapping": { "additionalProperties": false, "properties": { - "AccessLogSetting": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "AccessLogSetting" + "Condition": { + "type": "string" }, - "ApiKeySourceType": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "ApiKeySourceType" + "type": "string" }, - "Auth": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Auth" + ] }, - "BinaryMediaTypes": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "BasePath": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Stage": { + "type": "string" } + }, + "required": [ + "DomainName" ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "BinaryMediaTypes" + "type": "object" }, - "CacheClusterEnabled": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::BasePathMapping" ], - "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "CacheClusterEnabled" + "type": "string" }, - "CacheClusterSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "CacheClusterSize" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::ClientCertificate": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "CanarySetting": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "CanarySetting" + "type": "string" }, - "Cors": { + "DependsOn": { "anyOf": [ { - "type": "object" - }, - { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, { - "$ref": "#/definitions/Cors" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Cors" + ] }, - "DefinitionBody": { - "description": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.", - "markdownDescription": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.", - "title": "DefinitionBody", + "Metadata": { "type": "object" }, - "DefinitionUri": { - "anyOf": [ - { + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { "type": "string" }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__DefinitionUri" + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } - ], - "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", - "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", - "title": "DefinitionUri" + }, + "type": "object" }, - "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::ClientCertificate" ], - "description": "A description of the Api resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "A description of the Api resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "Description" + "type": "string" }, - "DisableExecuteApiEndpoint": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "DisableExecuteApiEndpoint" + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::Deployment": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "Domain": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Domain" + "type": "string" }, - "EndpointConfiguration": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "$ref": "#/definitions/EndpointConfiguration" - } - ], - "description": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", - "markdownDescription": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", - "title": "EndpointConfiguration" - }, - "FailOnWarnings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "FailOnWarnings" + ] }, - "GatewayResponses": { - "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "GatewayResponses", + "Metadata": { "type": "object" }, - "MethodSettings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "DeploymentCanarySettings": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.DeploymentCanarySettings" + }, + "Description": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StageDescription": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.StageDescription" + }, + "StageName": { + "type": "string" } + }, + "required": [ + "RestApiId" ], - "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "MethodSettings" + "type": "object" }, - "MinimumCompressionSize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::Deployment" ], - "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "MinimumCompressionSize" + "type": "string" }, - "Mode": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\. \n*Valid values*: `overwrite` or `merge` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\. \n*Valid values*: `overwrite` or `merge` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "Mode" - }, - "Models": { - "description": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Models", - "type": "object" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::Deployment.AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", - "markdownDescription": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", - "title": "Name" + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Deployment.CanarySetting": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" }, - "OpenApiVersion": { - "anyOf": [ - { - "type": "number" - }, - { + "StageVariableOverrides": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { "type": "string" } - ], - "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "OpenApiVersion" + }, + "type": "object" }, - "StageName": { - "anyOf": [ - { - "type": "object" - }, - { + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Deployment.DeploymentCanarySettings": { + "additionalProperties": false, + "properties": { + "PercentTraffic": { + "type": "number" + }, + "StageVariableOverrides": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { "type": "string" } - ], - "description": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\. \nTo reference the stage resource, use `.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. 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*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.", - "markdownDescription": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\. \nTo reference the stage resource, use `.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. 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*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.", - "title": "StageName" - }, - "Tags": { - "description": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", - "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", - "title": "Tags", + }, "type": "object" }, - "TracingEnabled": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "TracingEnabled" - }, - "Variables": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", - "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", - "title": "Variables" + "UseStageCache": { + "type": "boolean" } }, - "required": [ - "StageName" - ], - "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Resource": { + "AWS::ApiGateway::Deployment.MethodSetting": { "additionalProperties": false, "properties": { - "Condition": { - "$ref": "#/definitions/PassThroughProp" + "CacheDataEncrypted": { + "type": "boolean" }, - "Connectors": { - "title": "Connectors" + "CacheTtlInSeconds": { + "type": "number" }, - "DeletionPolicy": { - "$ref": "#/definitions/PassThroughProp" + "CachingEnabled": { + "type": "boolean" }, - "DependsOn": { - "$ref": "#/definitions/PassThroughProp" + "DataTraceEnabled": { + "type": "boolean" }, - "Metadata": { - "$ref": "#/definitions/PassThroughProp" + "HttpMethod": { + "type": "string" }, - "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Properties" + "LoggingLevel": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Serverless::Api" - ], - "title": "Type", + "MetricsEnabled": { + "type": "boolean" + }, + "ResourcePath": { "type": "string" }, - "UpdatePolicy": { - "$ref": "#/definitions/PassThroughProp" + "ThrottlingBurstLimit": { + "type": "number" }, - "UpdateReplacePolicy": { - "$ref": "#/definitions/PassThroughProp" + "ThrottlingRateLimit": { + "type": "number" } }, - "required": [ - "Type", - "Properties" - ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_api__ResourcePolicy": { + "AWS::ApiGateway::Deployment.StageDescription": { "additionalProperties": false, "properties": { - "AwsAccountBlacklist": { - "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "AwsAccountBlacklist", - "type": "array" + "AccessLogSetting": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.AccessLogSetting" }, - "AwsAccountWhitelist": { - "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "AwsAccountWhitelist", - "type": "array" + "CacheClusterEnabled": { + "type": "boolean" }, - "CustomStatements": { - "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "CustomStatements", - "type": "array" + "CacheClusterSize": { + "type": "string" }, - "IntrinsicVpcBlacklist": { - "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IntrinsicVpcBlacklist", - "type": "array" + "CacheDataEncrypted": { + "type": "boolean" }, - "IntrinsicVpcWhitelist": { - "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "title": "IntrinsicVpcWhitelist", - "type": "array" + "CacheTtlInSeconds": { + "type": "number" }, - "IntrinsicVpceBlacklist": { - "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "title": "IntrinsicVpceBlacklist", - "type": "array" + "CachingEnabled": { + "type": "boolean" }, - "IntrinsicVpceWhitelist": { - "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IntrinsicVpceWhitelist", - "type": "array" + "CanarySetting": { + "$ref": "#/definitions/AWS::ApiGateway::Deployment.CanarySetting" }, - "IpRangeBlacklist": { - "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IpRangeBlacklist", - "type": "array" + "ClientCertificateId": { + "type": "string" }, - "IpRangeWhitelist": { - "description": "The IP addresses or address ranges to allow\\. \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\\.", + "DataTraceEnabled": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "MethodSettings": { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "$ref": "#/definitions/AWS::ApiGateway::Deployment.MethodSetting" }, - "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", - "title": "IpRangeWhitelist", "type": "array" }, - "SourceVpcBlacklist": { - "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "MetricsEnabled": { + "type": "boolean" + }, + "Tags": { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "$ref": "#/definitions/Tag" }, - "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "SourceVpcBlacklist", "type": "array" }, - "SourceVpcWhitelist": { - "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "ThrottlingBurstLimit": { + "type": "number" + }, + "ThrottlingRateLimit": { + "type": "number" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", - "title": "SourceVpcWhitelist", - "type": "array" + "type": "object" } }, - "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_api__Route53": { + "AWS::ApiGateway::DocumentationPart": { "additionalProperties": false, "properties": { - "DistributionDomainName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", - "markdownDescription": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", - "title": "DistributionDomainName" + "type": "string" }, - "EvaluateTargetHealth": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", - "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", - "title": "EvaluateTargetHealth" + ] }, - "HostedZoneId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Location": { + "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart.Location" + }, + "Properties": { + "type": "string" + }, + "RestApiId": { + "type": "string" } + }, + "required": [ + "Location", + "Properties", + "RestApiId" ], - "description": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "markdownDescription": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "title": "HostedZoneId" + "type": "object" }, - "HostedZoneName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::DocumentationPart" ], - "description": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "markdownDescription": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "title": "HostedZoneName" + "type": "string" }, - "IpV6": { - "description": "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\\.", - "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" + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, - "title": "Route53", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_application__Properties": { + "AWS::ApiGateway::DocumentationPart.Location": { "additionalProperties": false, "properties": { - "Location": { - "anyOf": [ - { - "type": "string" - }, - { - "$ref": "#/definitions/Location" - } - ], - "description": "Template URL, file path, or location object of a nested application\\. \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\. \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.", - "markdownDescription": "Template URL, file path, or location object of a nested application\\. \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\. \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.", - "title": "Location" + "Method": { + "type": "string" }, - "NotificationARNs": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A list of existing Amazon SNS topics where notifications about stack events are sent\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.", - "markdownDescription": "A list of existing Amazon SNS topics where notifications about stack events are sent\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.", - "title": "NotificationARNs" + "Name": { + "type": "string" }, - "Parameters": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Application parameter values\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.", - "markdownDescription": "Application parameter values\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.", - "title": "Parameters" + "Path": { + "type": "string" }, - "Tags": { - "description": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\. \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-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.", - "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\. \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-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.", - "title": "Tags", - "type": "object" + "StatusCode": { + "type": "string" }, - "TimeoutInMinutes": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "TimeoutInMinutes" + "Type": { + "type": "string" } }, - "required": [ - "Location" - ], - "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_application__Resource": { + "AWS::ApiGateway::DocumentationVersion": { "additionalProperties": false, "properties": { "Condition": { - "$ref": "#/definitions/PassThroughProp" + "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": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Properties" + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "RestApiId": { + "type": "string" + } + }, + "required": [ + "DocumentationVersion", + "RestApiId" + ], + "type": "object" }, "Type": { "enum": [ - "AWS::Serverless::Application" + "AWS::ApiGateway::DocumentationVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "title": "Type", "type": "string" } }, @@ -3862,95 +3926,198 @@ "Type", "Properties" ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__Properties": { + "AWS::ApiGateway::DomainName": { "additionalProperties": false, "properties": { - "Destination": { - "allOf": [ - { - "$ref": "#/definitions/ResourceReference" - } + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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\\.", - "title": "Destination" + "type": "string" }, - "Permissions": { - "description": "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\\.", - "items": { - "enum": [ - "Read", - "Write" - ], - "type": "string" - }, - "markdownDescription": "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\\.", - "title": "Permissions", - "type": "array" - }, - "Source": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/ResourceReference" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/AWS::ApiGateway::DomainName.EndpointConfiguration" + }, + "MutualTlsAuthentication": { + "$ref": "#/definitions/AWS::ApiGateway::DomainName.MutualTlsAuthentication" + }, + "OwnershipVerificationCertificateArn": { + "type": "string" + }, + "RegionalCertificateArn": { + "type": "string" + }, + "SecurityPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::DomainName" ], - "description": "The source 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 source 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\\.", - "title": "Source" + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, "required": [ - "Source", - "Destination", - "Permissions" + "Type" ], - "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__Resource": { + "AWS::ApiGateway::DomainName.EndpointConfiguration": { "additionalProperties": false, "properties": { - "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Properties" + "Types": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApiGateway::DomainName.MutualTlsAuthentication": { + "additionalProperties": false, + "properties": { + "TruststoreUri": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Serverless::Connector" - ], - "title": "Type", + "TruststoreVersion": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ApiEvent": { + "AWS::ApiGateway::GatewayResponse": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEventProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseTemplates": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ResponseType": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "StatusCode": { + "type": "string" } + }, + "required": [ + "ResponseType", + "RestApiId" ], - "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\\.", - "title": "Properties" + "type": "object" }, "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\\.", "enum": [ - "Api" + "AWS::ApiGateway::GatewayResponse" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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\\.", - "title": "Type", "type": "string" } }, @@ -3958,98 +4125,120 @@ "Type", "Properties" ], - "title": "ApiEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ApiEventProperties": { + "AWS::ApiGateway::Method": { "additionalProperties": false, "properties": { - "Auth": { - "allOf": [ - { - "$ref": "#/definitions/ApiAuth" - } - ], - "description": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\. \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\. \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Auth" - }, - "Method": { - "description": "HTTP method for which this function is invoked\\. \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": "HTTP method for which this function is invoked\\. \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": "Method", - "type": "string" - }, - "Path": { - "description": "Uri path for which this function is invoked\\. Must start with `/`\\. \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": "Uri path for which this function is invoked\\. Must start with `/`\\. \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": "Path", + "Condition": { "type": "string" }, - "RequestModel": { - "allOf": [ - { - "$ref": "#/definitions/RequestModel" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\. \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\. \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "RequestModel" + "type": "string" }, - "RequestParameters": { + "DependsOn": { "anyOf": [ { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, { - "$ref": "#/definitions/RequestParameters" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\. \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\. \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\. \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\. \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "RequestParameters" + ] }, - "RestApiId": { - "anyOf": [ - { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthorizationType": { "type": "string" }, - { - "$ref": "#/definitions/Ref" - } - ], - "description": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\. \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": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\. \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": "RestApiId" - } - }, - "required": [ - "Method", - "Path" - ], - "title": "ApiEventProperties", - "type": "object" - }, - "samtranslator__schema__aws_serverless_function__CloudWatchEvent": { - "additionalProperties": false, - "properties": { - "Properties": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEventProperties" + "AuthorizerId": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/AWS::ApiGateway::Method.Integration" + }, + "MethodResponses": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::Method.MethodResponse" + }, + "type": "array" + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "RequestParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "boolean" + } + }, + "type": "object" + }, + "RequestValidatorId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RestApiId": { + "type": "string" } + }, + "required": [ + "HttpMethod", + "ResourceId", + "RestApiId" ], - "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\\.", - "title": "Properties" + "type": "object" }, "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\\.", "enum": [ - "CloudWatchEvent" + "AWS::ApiGateway::Method" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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\\.", - "title": "Type", "type": "string" } }, @@ -4057,1194 +4246,1221 @@ "Type", "Properties" ], - "title": "CloudWatchEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__CloudWatchEventProperties": { + "AWS::ApiGateway::Method.Integration": { "additionalProperties": false, "properties": { - "Enabled": { - "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", - "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", - "title": "Enabled", - "type": "boolean" + "CacheKeyParameters": { + "items": { + "type": "string" + }, + "type": "array" }, - "EventBusName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "title": "EventBusName" + "CacheNamespace": { + "type": "string" }, - "Input": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "title": "Input" + "ConnectionId": { + "type": "string" }, - "InputPath": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "title": "InputPath" + "ConnectionType": { + "type": "string" }, - "Pattern": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "ContentHandling": { + "type": "string" + }, + "Credentials": { + "type": "string" + }, + "IntegrationHttpMethod": { + "type": "string" + }, + "IntegrationResponses": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::Method.IntegrationResponse" + }, + "type": "array" + }, + "PassthroughBehavior": { + "type": "string" + }, + "RequestParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" } - ], - "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "title": "Pattern" + }, + "type": "object" }, - "State": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "RequestTemplates": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" } - ], - "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", - "title": "State" + }, + "type": "object" + }, + "TimeoutInMillis": { + "type": "number" + }, + "Type": { + "type": "string" + }, + "Uri": { + "type": "string" } }, - "title": "CloudWatchEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__DeadLetterConfig": { + "AWS::ApiGateway::Method.IntegrationResponse": { "additionalProperties": false, "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "ContentHandling": { + "type": "string" + }, + "ResponseParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" } - ], - "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", - "title": "Arn" + }, + "type": "object" }, - "QueueLogicalId": { - "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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 custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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": "QueueLogicalId", + "ResponseTemplates": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "SelectionPattern": { "type": "string" }, - "Type": { - "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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\\.", - "enum": [ - "SQS" - ], - "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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": "Type", + "StatusCode": { "type": "string" } }, - "title": "DeadLetterConfig", + "required": [ + "StatusCode" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent": { + "AWS::ApiGateway::Method.MethodResponse": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties" + "ResponseModels": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" } - ], - "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\\.", - "title": "Properties" + }, + "type": "object" }, - "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\\.", - "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\\.", - "title": "Type", + "ResponseParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "boolean" + } + }, + "type": "object" + }, + "StatusCode": { "type": "string" } }, "required": [ - "Type", - "Properties" + "StatusCode" ], - "title": "EventBridgeRuleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties": { + "AWS::ApiGateway::Model": { "additionalProperties": false, "properties": { - "DeadLetterConfig": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" - } - ], - "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "title": "DeadLetterConfig" + "Condition": { + "type": "string" }, - "EventBusName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "title": "EventBusName" + "type": "string" }, - "Input": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "title": "Input" - }, - "InputPath": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "title": "InputPath" + ] }, - "Pattern": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RestApiId": { + "type": "string" + }, + "Schema": { + "type": "object" } + }, + "required": [ + "RestApiId" ], - "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "title": "Pattern" + "type": "object" }, - "RetryPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::Model" ], - "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "title": "RetryPolicy" + "type": "string" }, - "Target": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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-function-target.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-function-target.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" + "type": "string" } }, "required": [ - "Pattern" + "Type", + "Properties" ], - "title": "EventBridgeRuleEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget": { + "AWS::ApiGateway::RequestValidator": { "additionalProperties": false, "properties": { - "Id": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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": [ - "Id" - ], - "title": "EventBridgeRuleTarget", - "type": "object" - }, - "samtranslator__schema__aws_serverless_function__Globals": { - "additionalProperties": false, - "properties": { - "Architectures": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Architectures" - }, - "AssumeRolePolicyDocument": { - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "AssumeRolePolicyDocument", - "type": "object" + "type": "string" }, - "AutoPublishAlias": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "AutoPublishAlias" + ] }, - "CodeUri": { - "anyOf": [ - { + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Name": { "type": "string" }, - { - "$ref": "#/definitions/CodeUri" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "CodeUri" - }, - "DeadLetterQueue": { - "anyOf": [ - { - "type": "object" + "RestApiId": { + "type": "string" }, - { - "$ref": "#/definitions/DeadLetterQueue" - } - ], - "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", - "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", - "title": "DeadLetterQueue" - }, - "DeploymentPreference": { - "allOf": [ - { - "$ref": "#/definitions/DeploymentPreference" - } - ], - "description": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", - "markdownDescription": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", - "title": "DeploymentPreference" - }, - "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", - "title": "Description" - }, - "Environment": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "ValidateRequestBody": { + "type": "boolean" + }, + "ValidateRequestParameters": { + "type": "boolean" } + }, + "required": [ + "RestApiId" ], - "description": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", - "title": "Environment" + "type": "object" }, - "EphemeralStorage": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::RequestValidator" ], - "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", - "title": "EphemeralStorage" + "type": "string" }, - "EventInvokeConfig": { - "allOf": [ - { - "$ref": "#/definitions/EventInvokeConfig" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.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 object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "EventInvokeConfig" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "Handler": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", - "title": "Handler" + "type": "string" }, - "KmsKeyArn": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", - "title": "KmsKeyArn" - }, - "Layers": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", - "title": "Layers" + ] }, - "MemorySize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", - "title": "MemorySize" + "Metadata": { + "type": "object" }, - "PermissionsBoundary": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "ParentId": { + "type": "string" + }, + "PathPart": { + "type": "string" + }, + "RestApiId": { + "type": "string" } + }, + "required": [ + "ParentId", + "PathPart", + "RestApiId" ], - "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "title": "PermissionsBoundary" + "type": "object" }, - "ProvisionedConcurrencyConfig": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::Resource" ], - "description": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", - "markdownDescription": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", - "title": "ProvisionedConcurrencyConfig" + "type": "string" }, - "ReservedConcurrentExecutions": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", - "title": "ReservedConcurrentExecutions" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::RestApi": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "RolePath": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The path to the function'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 function'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" + "type": "string" }, - "Runtime": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", - "title": "Runtime" - }, - "SnapStart": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", - "title": "SnapStart" + ] }, - "Tags": { - "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", - "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", - "title": "Tags", + "Metadata": { "type": "object" }, - "Timeout": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", - "title": "Timeout" - }, - "Tracing": { - "anyOf": [ - { + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKeySourceType": { + "type": "string" + }, + "BinaryMediaTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Body": { "type": "object" }, - { - "enum": [ - "Active", - "PassThrough" - ], + "BodyS3Location": { + "$ref": "#/definitions/AWS::ApiGateway::RestApi.S3Location" + }, + "CloneFrom": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/AWS::ApiGateway::RestApi.EndpointConfiguration" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "MinimumCompressionSize": { + "type": "number" + }, + "Mode": { + "type": "string" + }, + "Name": { "type": "string" + }, + "Parameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApiGateway::RestApi" ], - "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", - "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", - "title": "Tracing" + "type": "string" }, - "VpcConfig": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", - "title": "VpcConfig" + "type": "string" } }, - "title": "Globals", + "required": [ + "Type" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_function__Properties": { + "AWS::ApiGateway::RestApi.EndpointConfiguration": { "additionalProperties": false, "properties": { - "Architectures": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "Architectures" + "Types": { + "items": { + "type": "string" + }, + "type": "array" }, - "AssumeRolePolicyDocument": { - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "AssumeRolePolicyDocument", - "type": "object" + "VpcEndpointIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApiGateway::RestApi.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" }, - "AutoPublishAlias": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Stage": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "AutoPublishAlias" + "type": "string" }, - "AutoPublishCodeSha256": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "AutoPublishCodeSha256" + ] }, - "CodeSigningConfigArn": { - "anyOf": [ - { - "type": "object" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "$ref": "#/definitions/AWS::ApiGateway::Stage.AccessLogSetting" }, - { + "CacheClusterEnabled": { + "type": "boolean" + }, + "CacheClusterSize": { "type": "string" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "CodeSigningConfigArn" - }, - "CodeUri": { - "anyOf": [ - { + }, + "CanarySetting": { + "$ref": "#/definitions/AWS::ApiGateway::Stage.CanarySetting" + }, + "ClientCertificateId": { "type": "string" }, - { - "$ref": "#/definitions/CodeUri" - } - ], - "description": "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\\.", - "markdownDescription": "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\\.", - "title": "CodeUri" - }, - "DeadLetterQueue": { - "anyOf": [ - { - "type": "object" + "DeploymentId": { + "type": "string" }, - { - "$ref": "#/definitions/DeadLetterQueue" + "Description": { + "type": "string" + }, + "DocumentationVersion": { + "type": "string" + }, + "MethodSettings": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::Stage.MethodSetting" + }, + "type": "array" + }, + "RestApiId": { + "type": "string" + }, + "StageName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TracingEnabled": { + "type": "boolean" + }, + "Variables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" } + }, + "required": [ + "RestApiId" ], - "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", - "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", - "title": "DeadLetterQueue" + "type": "object" }, - "DeploymentPreference": { - "allOf": [ - { - "$ref": "#/definitions/DeploymentPreference" - } + "Type": { + "enum": [ + "AWS::ApiGateway::Stage" ], - "description": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", - "markdownDescription": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", - "title": "DeploymentPreference" + "type": "string" }, - "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", - "title": "Description" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGateway::Stage.AccessLogSetting": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" }, - "Environment": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", - "title": "Environment" + "Format": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Stage.CanarySetting": { + "additionalProperties": false, + "properties": { + "DeploymentId": { + "type": "string" }, - "EphemeralStorage": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", - "title": "EphemeralStorage" + "PercentTraffic": { + "type": "number" }, - "EventInvokeConfig": { - "allOf": [ - { - "$ref": "#/definitions/EventInvokeConfig" + "StageVariableOverrides": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" } - ], - "description": "The object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.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 object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "EventInvokeConfig" - }, - "Events": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/definitions/S3Event" - }, - { - "$ref": "#/definitions/SNSEvent" - }, - { - "$ref": "#/definitions/KinesisEvent" - }, - { - "$ref": "#/definitions/DynamoDBEvent" - }, - { - "$ref": "#/definitions/SQSEvent" - }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEvent" - }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleEvent" - }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2Event" - }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEvent" - }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent" - }, - { - "$ref": "#/definitions/CloudWatchLogsEvent" - }, - { - "$ref": "#/definitions/IoTRuleEvent" - }, - { - "$ref": "#/definitions/AlexaSkillEvent" - }, - { - "$ref": "#/definitions/CognitoEvent" - }, - { - "$ref": "#/definitions/HttpApiEvent" - }, - { - "$ref": "#/definitions/MSKEvent" - }, - { - "$ref": "#/definitions/MQEvent" - }, - { - "$ref": "#/definitions/SelfManagedKafkaEvent" - } - ] }, - "description": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Events", "type": "object" }, - "FileSystemConfigs": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\. \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\. \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.", - "title": "FileSystemConfigs" - }, - "FunctionName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.", - "title": "FunctionName" + "UseStageCache": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ApiGateway::Stage.MethodSetting": { + "additionalProperties": false, + "properties": { + "CacheDataEncrypted": { + "type": "boolean" }, - "FunctionUrlConfig": { - "allOf": [ - { - "$ref": "#/definitions/FunctionUrlConfig" - } - ], - "description": "The object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.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 object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "FunctionUrlConfig" + "CacheTtlInSeconds": { + "type": "number" }, - "Handler": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", - "title": "Handler" + "CachingEnabled": { + "type": "boolean" }, - "ImageConfig": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.", - "title": "ImageConfig" + "DataTraceEnabled": { + "type": "boolean" }, - "ImageUri": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.", - "markdownDescription": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.", - "title": "ImageUri" + "HttpMethod": { + "type": "string" }, - "InlineCode": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\. \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.", - "markdownDescription": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\. \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.", - "title": "InlineCode" + "LoggingLevel": { + "type": "string" }, - "KmsKeyArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", - "title": "KmsKeyArn" + "MetricsEnabled": { + "type": "boolean" }, - "Layers": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", - "title": "Layers" + "ResourcePath": { + "type": "string" }, - "MemorySize": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", - "title": "MemorySize" + "ThrottlingBurstLimit": { + "type": "number" }, - "PackageType": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\. \n**Notes**: \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\. \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\. \n*Valid values*: `Zip` or `Image` \n*Type*: String \n*Required*: No \n*Default*: `Zip` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\. \n**Notes**: \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\. \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\. \n*Valid values*: `Zip` or `Image` \n*Type*: String \n*Required*: No \n*Default*: `Zip` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.", - "title": "PackageType" + "ThrottlingRateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlan": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "PermissionsBoundary": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "title": "PermissionsBoundary" + "type": "string" }, - "Policies": { + "DependsOn": { "anyOf": [ { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - { - "type": "object" - }, { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" } - ], - "description": "One or more policies that this function needs\\. They will be appended to the default role for this function\\. \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\. \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\. \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.", - "markdownDescription": "One or more policies that this function needs\\. They will be appended to the default role for this function\\. \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\. \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\. \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.", - "title": "Policies" - }, - "ProvisionedConcurrencyConfig": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", - "markdownDescription": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", - "title": "ProvisionedConcurrencyConfig" + ] }, - "ReservedConcurrentExecutions": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", - "title": "ReservedConcurrentExecutions" + "Metadata": { + "type": "object" }, - "Role": { - "anyOf": [ - { - "type": "object" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiStages": { + "items": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ApiStage" + }, + "type": "array" }, - { + "Description": { + "type": "string" + }, + "Quota": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.QuotaSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Throttle": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings" + }, + "UsagePlanName": { "type": "string" } - ], - "description": "The ARN of an IAM role to use as this function's execution role\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `Role`\\.", - "markdownDescription": "The ARN of an IAM role to use as this function's execution role\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `Role`\\.", - "title": "Role" + }, + "type": "object" }, - "RolePath": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::UsagePlan" ], - "description": "The path to the function'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 function'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" + "type": "string" }, - "Runtime": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", - "title": "Runtime" + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGateway::UsagePlan.ApiStage": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" }, - "SnapStart": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", - "title": "SnapStart" + "Stage": { + "type": "string" }, - "Tags": { - "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", - "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", - "title": "Tags", + "Throttle": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan.ThrottleSettings" + } + }, "type": "object" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlan.QuotaSettings": { + "additionalProperties": false, + "properties": { + "Limit": { + "type": "number" }, - "Timeout": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Offset": { + "type": "number" + }, + "Period": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlan.ThrottleSettings": { + "additionalProperties": false, + "properties": { + "BurstLimit": { + "type": "number" + }, + "RateLimit": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGateway::UsagePlanKey": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", - "title": "Timeout" + "type": "string" }, - "Tracing": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "enum": [ - "Active", - "PassThrough" - ], + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "KeyId": { + "type": "string" + }, + "KeyType": { + "type": "string" + }, + "UsagePlanId": { "type": "string" } + }, + "required": [ + "KeyId", + "KeyType", + "UsagePlanId" ], - "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", - "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", - "title": "Tracing" + "type": "object" }, - "VersionDescription": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGateway::UsagePlanKey" ], - "description": "Specifies the `Description` field that is added on the new Lambda version resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.", - "markdownDescription": "Specifies the `Description` field that is added on the new Lambda version resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.", - "title": "VersionDescription" + "type": "string" }, - "VpcConfig": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", - "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", - "title": "VpcConfig" + "type": "string" } }, - "title": "Properties", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_function__Resource": { + "AWS::ApiGateway::VpcLink": { "additionalProperties": false, "properties": { "Condition": { - "$ref": "#/definitions/PassThroughProp" - }, - "Connectors": { - "title": "Connectors" + "type": "string" }, "DeletionPolicy": { - "$ref": "#/definitions/PassThroughProp" + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, "DependsOn": { - "$ref": "#/definitions/PassThroughProp" + "anyOf": [ + { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] }, "Metadata": { - "$ref": "#/definitions/PassThroughProp" + "type": "object" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Properties" + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "TargetArns" + ], + "type": "object" }, "Type": { "enum": [ - "AWS::Serverless::Function" + "AWS::ApiGateway::VpcLink" ], - "title": "Type", "type": "string" }, "UpdateReplacePolicy": { - "$ref": "#/definitions/PassThroughProp" + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ResourcePolicy": { + "AWS::ApiGatewayV2::Api": { "additionalProperties": false, "properties": { - "AwsAccountBlacklist": { - "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "items": { - "anyOf": [ - { + "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": "object" - } - ] - }, - "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "AwsAccountBlacklist", - "type": "array" + "type": "array" + } + ] }, - "AwsAccountWhitelist": { - "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "AwsAccountWhitelist", - "type": "array" + "Metadata": { + "type": "object" }, - "CustomStatements": { - "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiKeySelectionExpression": { + "type": "string" + }, + "BasePath": { + "type": "string" + }, + "Body": { + "type": "object" + }, + "BodyS3Location": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api.BodyS3Location" + }, + "CorsConfiguration": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api.Cors" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "type": "boolean" + }, + "DisableSchemaValidation": { + "type": "boolean" + }, + "FailOnWarnings": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "ProtocolType": { + "type": "string" + }, + "RouteKey": { + "type": "string" + }, + "RouteSelectionExpression": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - { - "type": "object" - } - ] + "type": "object" + }, + "Target": { + "type": "string" + }, + "Version": { + "type": "string" + } }, - "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "CustomStatements", - "type": "array" + "type": "object" }, - "IntrinsicVpcBlacklist": { - "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IntrinsicVpcBlacklist", - "type": "array" + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Api" + ], + "type": "string" }, - "IntrinsicVpcWhitelist": { - "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "title": "IntrinsicVpcWhitelist", - "type": "array" + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Api.BodyS3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" }, - "IntrinsicVpceBlacklist": { - "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "title": "IntrinsicVpceBlacklist", - "type": "array" + "Etag": { + "type": "string" }, - "IntrinsicVpceWhitelist": { - "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IntrinsicVpceWhitelist", - "type": "array" + "Key": { + "type": "string" }, - "IpRangeBlacklist": { - "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::Api.Cors": { + "additionalProperties": false, + "properties": { + "AllowCredentials": { + "type": "boolean" + }, + "AllowHeaders": { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "type": "string" }, - "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IpRangeBlacklist", "type": "array" }, - "IpRangeWhitelist": { - "description": "The IP addresses or address ranges to allow\\. \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\\.", + "AllowMethods": { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "type": "string" }, - "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", - "title": "IpRangeWhitelist", "type": "array" }, - "SourceVpcBlacklist": { - "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "AllowOrigins": { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "type": "string" }, - "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "SourceVpcBlacklist", "type": "array" }, - "SourceVpcWhitelist": { - "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "ExposeHeaders": { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "type": "string" }, - "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", - "title": "SourceVpcWhitelist", "type": "array" + }, + "MaxAge": { + "type": "number" } }, - "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleEvent": { + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/EventsScheduleProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "Integration": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides" + }, + "Route": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides" + }, + "Stage": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides" } + }, + "required": [ + "ApiId" ], - "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\\.", - "title": "Properties" + "type": "object" }, "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\\.", "enum": [ - "Schedule" + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "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\\.", - "title": "Type", "type": "string" } }, @@ -5252,898 +5468,788 @@ "Type", "Properties" ], - "title": "ScheduleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleV2Event": { + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__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\\.", - "title": "Properties" + "DestinationArn": { + "type": "string" }, - "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\\.", - "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\\.", - "title": "Type", + "Format": { "type": "string" } }, - "required": [ - "Type", - "Properties" - ], - "title": "ScheduleV2Event", "type": "object" }, - "samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties": { + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.IntegrationOverrides": { "additionalProperties": false, "properties": { - "DeadLetterConfig": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" - } - ], - "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "title": "DeadLetterConfig" - }, "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "Description" - }, - "EndDate": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "EndDate" - }, - "FlexibleTimeWindow": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "FlexibleTimeWindow" - }, - "GroupName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "GroupName" - }, - "Input": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", - "title": "Input" - }, - "KmsKeyArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "KmsKeyArn" - }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "Name" + "type": "string" }, - "PermissionsBoundary": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "title": "PermissionsBoundary" + "IntegrationMethod": { + "type": "string" }, - "RetryPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A RetryPolicy object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "markdownDescription": "A RetryPolicy object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "title": "RetryPolicy" + "PayloadFormatVersion": { + "type": "string" }, - "RoleArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "title": "RoleArn" + "TimeoutInMillis": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteOverrides": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" }, - "ScheduleExpression": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The scheduling expression that determines when and how often the scheduler schedule event runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The scheduling expression that determines when and how often the scheduler schedule event runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "ScheduleExpression" + "AuthorizationType": { + "type": "string" }, - "ScheduleExpressionTimezone": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "ScheduleExpressionTimezone" + "AuthorizerId": { + "type": "string" }, - "StartDate": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "StartDate" + "OperationName": { + "type": "string" }, - "State": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The state of the Scheduler schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The state of the Scheduler schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "State" + "Target": { + "type": "string" } }, - "title": "ScheduleV2EventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Auth": { + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings": { "additionalProperties": false, "properties": { - "Authorizers": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/definitions/OAuth2Authorizer" - }, - { - "$ref": "#/definitions/LambdaAuthorizer" - } - ] - }, - "description": "The authorizer used to control access to your API Gateway API\\. \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.", - "markdownDescription": "The authorizer used to control access to your API Gateway API\\. \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.", - "title": "Authorizers", - "type": "object" + "DataTraceEnabled": { + "type": "boolean" }, - "DefaultAuthorizer": { - "description": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\. \n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\. \n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "DefaultAuthorizer", + "DetailedMetricsEnabled": { + "type": "boolean" + }, + "LoggingLevel": { "type": "string" }, - "EnableIamAuthorizer": { - "description": "Specify whether to use IAM authorization for the API route\\. \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 whether to use IAM authorization for the API route\\. \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": "EnableIamAuthorizer", - "type": "boolean" + "ThrottlingBurstLimit": { + "type": "number" + }, + "ThrottlingRateLimit": { + "type": "number" } }, - "title": "Auth", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__DefinitionUri": { + "AWS::ApiGatewayV2::ApiGatewayManagedOverrides.StageOverrides": { "additionalProperties": false, "properties": { - "Bucket": { - "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", - "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", - "title": "Bucket", - "type": "string" + "AccessLogSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.AccessLogSettings" }, - "Key": { - "description": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", - "markdownDescription": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", - "title": "Key", - "type": "string" + "AutoDeploy": { + "type": "boolean" }, - "Version": { - "description": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", - "markdownDescription": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", - "title": "Version", + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides.RouteSettings" + }, + "Description": { "type": "string" + }, + "RouteSettings": { + "type": "object" + }, + "StageVariables": { + "type": "object" } }, - "required": [ - "Bucket", - "Key" - ], - "title": "DefinitionUri", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Domain": { + "AWS::ApiGatewayV2::ApiMapping": { "additionalProperties": false, "properties": { - "BasePath": { - "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.", - "items": { - "type": "string" - }, - "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.", - "title": "BasePath", - "type": "array" - }, - "CertificateArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.", - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.", - "title": "CertificateArn" + "Condition": { + "type": "string" }, - "DomainName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.", - "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.", - "title": "DomainName" + "type": "string" }, - "EndpointConfiguration": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { - "enum": [ - "REGIONAL" - ], - "type": "string" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \nThe only valid value for HTTP APIs is `REGIONAL`\\. \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \nThe only valid value for HTTP APIs is `REGIONAL`\\. \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "EndpointConfiguration" + ] }, - "MutualTlsAuthentication": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.", - "markdownDescription": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.", - "title": "MutualTlsAuthentication" + "Metadata": { + "type": "object" }, - "OwnershipVerificationCertificateArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "ApiMappingKey": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "Stage": { + "type": "string" } + }, + "required": [ + "ApiId", + "DomainName", + "Stage" ], - "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", - "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", - "title": "OwnershipVerificationCertificateArn" + "type": "object" }, - "Route53": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Route53" - } + "Type": { + "enum": [ + "AWS::ApiGatewayV2::ApiMapping" ], - "description": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Route53" + "type": "string" }, - "SecurityPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The TLS version of the security policy for this domain name\\. \nThe only valid value for HTTP APIs is `TLS_1_2`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", - "markdownDescription": "The TLS version of the security policy for this domain name\\. \nThe only valid value for HTTP APIs is `TLS_1_2`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", - "title": "SecurityPolicy" + "type": "string" } }, "required": [ - "CertificateArn", - "DomainName" + "Type", + "Properties" ], - "title": "Domain", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Globals": { + "AWS::ApiGatewayV2::Authorizer": { "additionalProperties": false, "properties": { - "AccessLogSettings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "AccessLogSettings" + "Condition": { + "type": "string" }, - "Auth": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Auth" + "type": "string" }, - "CorsConfiguration": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "CorsConfiguration" - }, - "DefaultRouteSettings": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "DefaultRouteSettings" + ] }, - "Domain": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" - } - ], - "description": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Domain" + "Metadata": { + "type": "object" }, - "FailOnWarnings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "AuthorizerCredentialsArn": { + "type": "string" + }, + "AuthorizerPayloadFormatVersion": { + "type": "string" + }, + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerType": { + "type": "string" + }, + "AuthorizerUri": { + "type": "string" + }, + "EnableSimpleResponses": { + "type": "boolean" + }, + "IdentitySource": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IdentityValidationExpression": { + "type": "string" + }, + "JwtConfiguration": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer.JWTConfiguration" + }, + "Name": { + "type": "string" } + }, + "required": [ + "ApiId", + "AuthorizerType", + "Name" ], - "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", - "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", - "title": "FailOnWarnings" + "type": "object" }, - "RouteSettings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Authorizer" ], - "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "RouteSettings" + "type": "string" }, - "StageVariables": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "StageVariables" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::Authorizer.JWTConfiguration": { + "additionalProperties": false, + "properties": { + "Audience": { + "items": { + "type": "string" + }, + "type": "array" }, - "Tags": { - "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", - "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", - "title": "Tags", - "type": "object" + "Issuer": { + "type": "string" } }, - "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Properties": { + "AWS::ApiGatewayV2::Deployment": { "additionalProperties": false, "properties": { - "AccessLogSettings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "AccessLogSettings" + "Condition": { + "type": "string" }, - "Auth": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Auth" + "type": "string" }, - "CorsConfiguration": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "CorsConfiguration" - }, - "DefaultRouteSettings": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "DefaultRouteSettings" + ] }, - "DefinitionBody": { - "description": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.", - "markdownDescription": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.", - "title": "DefinitionBody", + "Metadata": { "type": "object" }, - "DefinitionUri": { - "anyOf": [ - { + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { "type": "string" }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__DefinitionUri" + "Description": { + "type": "string" + }, + "StageName": { + "type": "string" } + }, + "required": [ + "ApiId" ], - "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\. \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.", - "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\. \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.", - "title": "DefinitionUri" + "type": "object" }, - "Description": { - "description": "The description of the HTTP API resource\\. \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` 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 description of the HTTP API resource\\. \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` 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": "Description", + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Deployment" + ], "type": "string" }, - "DisableExecuteApiEndpoint": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.", - "markdownDescription": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.", - "title": "DisableExecuteApiEndpoint" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApiGatewayV2::DomainName": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "Domain": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Domain" + "type": "string" }, - "FailOnWarnings": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", - "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", - "title": "FailOnWarnings" + ] }, - "Name": { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" }, - "RouteSettings": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "DomainName": { + "type": "string" + }, + "DomainNameConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.DomainNameConfiguration" + }, + "type": "array" + }, + "MutualTlsAuthentication": { + "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication" + }, + "Tags": { + "type": "object" } + }, + "required": [ + "DomainName" ], - "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "RouteSettings" + "type": "object" }, - "StageName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGatewayV2::DomainName" ], - "description": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\. \n*Type*: String \n*Required*: No \n*Default*: $default \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\. \n*Type*: String \n*Required*: No \n*Default*: $default \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "StageName" + "type": "string" }, - "StageVariables": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", - "title": "StageVariables" - }, - "Tags": { - "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", - "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", - "title": "Tags", - "type": "object" + "type": "string" } }, - "title": "Properties", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Resource": { + "AWS::ApiGatewayV2::DomainName.DomainNameConfiguration": { "additionalProperties": false, "properties": { - "Condition": { - "$ref": "#/definitions/PassThroughProp" + "CertificateArn": { + "type": "string" }, - "Connectors": { - "title": "Connectors" + "CertificateName": { + "type": "string" }, - "Metadata": { - "$ref": "#/definitions/PassThroughProp" + "EndpointType": { + "type": "string" }, - "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Properties" + "OwnershipVerificationCertificateArn": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Serverless::HttpApi" - ], - "title": "Type", + "SecurityPolicy": { "type": "string" } }, - "required": [ - "Type" - ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_httpapi__Route53": { + "AWS::ApiGatewayV2::DomainName.MutualTlsAuthentication": { "additionalProperties": false, "properties": { - "DistributionDomainName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", - "markdownDescription": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", - "title": "DistributionDomainName" - }, - "EvaluateTargetHealth": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", - "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", - "title": "EvaluateTargetHealth" - }, - "HostedZoneId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "markdownDescription": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "title": "HostedZoneId" - }, - "HostedZoneName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "markdownDescription": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", - "title": "HostedZoneName" + "TruststoreUri": { + "type": "string" }, - "IpV6": { - "description": "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\\.", - "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" + "TruststoreVersion": { + "type": "string" } }, - "title": "Route53", "type": "object" }, - "samtranslator__schema__aws_serverless_layerversion__Properties": { + "AWS::ApiGatewayV2::Integration": { "additionalProperties": false, "properties": { - "CompatibleArchitectures": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Specifies the supported instruction set architectures for the layer version\\. \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*: `x86_64`, `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.", - "markdownDescription": "Specifies the supported instruction set architectures for the layer version\\. \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*: `x86_64`, `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.", - "title": "CompatibleArchitectures" + "Condition": { + "type": "string" }, - "CompatibleRuntimes": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "List of runtimes compatible with this LayerVersion\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.", - "markdownDescription": "List of runtimes compatible with this LayerVersion\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.", - "title": "CompatibleRuntimes" + "type": "string" }, - "ContentUri": { + "DependsOn": { "anyOf": [ { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, { - "$ref": "#/definitions/ContentUri" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\. \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\. \nIf a path to a local folder is provided, for the content 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 \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.", - "markdownDescription": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\. \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\. \nIf a path to a local folder is provided, for the content 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 \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.", - "title": "ContentUri" + ] }, - "Description": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Description of this layer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.", - "markdownDescription": "Description of this layer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.", - "title": "Description" + "Metadata": { + "type": "object" }, - "LayerName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "ConnectionId": { + "type": "string" + }, + "ConnectionType": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "CredentialsArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IntegrationMethod": { + "type": "string" + }, + "IntegrationSubtype": { + "type": "string" + }, + "IntegrationType": { + "type": "string" + }, + "IntegrationUri": { + "type": "string" + }, + "PassthroughBehavior": { + "type": "string" + }, + "PayloadFormatVersion": { + "type": "string" + }, + "RequestParameters": { + "type": "object" + }, + "RequestTemplates": { + "type": "object" + }, + "ResponseParameters": { + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + }, + "TimeoutInMillis": { + "type": "number" + }, + "TlsConfig": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.TlsConfig" } + }, + "required": [ + "ApiId", + "IntegrationType" ], - "description": "The name or Amazon Resource Name \\(ARN\\) of the layer\\. \n*Type*: String \n*Required*: No \n*Default*: Resource logical id \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.", - "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the layer\\. \n*Type*: String \n*Required*: No \n*Default*: Resource logical id \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.", - "title": "LayerName" + "type": "object" }, - "LicenseInfo": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Integration" ], - "description": "Information about the license for this LayerVersion\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.", - "markdownDescription": "Information about the license for this LayerVersion\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.", - "title": "LicenseInfo" + "type": "string" }, - "RetentionPolicy": { - "anyOf": [ - { - "type": "object" - }, - { - "type": "string" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\. \n*Valid values*: `Retain` or `Delete` \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\\. \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.", - "markdownDescription": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\. \n*Valid values*: `Retain` or `Delete` \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\\. \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.", - "title": "RetentionPolicy" + "type": "string" } }, "required": [ - "ContentUri" + "Type", + "Properties" ], - "title": "Properties", "type": "object" }, - "samtranslator__schema__aws_serverless_layerversion__Resource": { + "AWS::ApiGatewayV2::Integration.ResponseParameter": { "additionalProperties": false, "properties": { - "Condition": { - "$ref": "#/definitions/PassThroughProp" - }, - "DeletionPolicy": { - "$ref": "#/definitions/PassThroughProp" - }, - "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Properties" + "Destination": { + "type": "string" }, - "Type": { - "enum": [ - "AWS::Serverless::LayerVersion" - ], - "title": "Type", + "Source": { "type": "string" } }, "required": [ - "Type", - "Properties" + "Destination", + "Source" ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Globals": { + "AWS::ApiGatewayV2::Integration.ResponseParameterList": { "additionalProperties": false, "properties": { - "SSESpecification": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", - "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", - "title": "SSESpecification" + "ResponseParameters": { + "items": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration.ResponseParameter" + }, + "type": "array" } }, - "title": "Globals", "type": "object" }, - "samtranslator__schema__aws_serverless_simpletable__Properties": { + "AWS::ApiGatewayV2::Integration.TlsConfig": { "additionalProperties": false, "properties": { - "PrimaryKey": { - "allOf": [ - { - "$ref": "#/definitions/PrimaryKey" - } - ], - "description": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\. \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\. \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "PrimaryKey" + "ServerNameToVerify": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApiGatewayV2::IntegrationResponse": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "ProvisionedThroughput": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Read and write throughput provisioning information\\. \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\. \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.", - "markdownDescription": "Read and write throughput provisioning information\\. \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\. \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.", - "title": "ProvisionedThroughput" + "type": "string" }, - "SSESpecification": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", - "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", - "title": "SSESpecification" - }, - "TableName": { - "allOf": [ + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "Name for the DynamoDB Table\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.", - "markdownDescription": "Name for the DynamoDB Table\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.", - "title": "TableName" + ] }, - "Tags": { - "description": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", - "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", - "title": "Tags", + "Metadata": { "type": "object" - } - }, - "title": "Properties", - "type": "object" - }, - "samtranslator__schema__aws_serverless_simpletable__Resource": { - "additionalProperties": false, - "properties": { - "Connectors": { - "title": "Connectors" }, "Properties": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "ContentHandlingStrategy": { + "type": "string" + }, + "IntegrationId": { + "type": "string" + }, + "IntegrationResponseKey": { + "type": "string" + }, + "ResponseParameters": { + "type": "object" + }, + "ResponseTemplates": { + "type": "object" + }, + "TemplateSelectionExpression": { + "type": "string" + } + }, + "required": [ + "ApiId", + "IntegrationId", + "IntegrationResponseKey" + ], + "type": "object" }, "Type": { "enum": [ - "AWS::Serverless::SimpleTable" + "AWS::ApiGatewayV2::IntegrationResponse" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "title": "Type", "type": "string" } }, "required": [ - "Type" + "Type", + "Properties" ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ApiEvent": { + "AWS::ApiGatewayV2::Model": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEventProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schema": { + "type": "object" + } + }, + "required": [ + "ApiId", + "Name", + "Schema" ], - "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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": "object" }, "Type": { - "description": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + "AWS::ApiGatewayV2::Model" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" } }, @@ -6151,117 +6257,195 @@ "Type", "Properties" ], - "title": "ApiEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ApiEventProperties": { + "AWS::ApiGatewayV2::Route": { "additionalProperties": false, "properties": { - "Auth": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Auth" - } - ], - "description": "The authorization configuration for this API, path, and method\\. \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\. \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.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 authorization configuration for this API, path, and method\\. \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\. \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Auth" - }, - "Method": { - "description": "The HTTP method for which this function is invoked\\. \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 HTTP method for which this function is invoked\\. \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": "Method", + "Condition": { "type": "string" }, - "Path": { - "description": "The URI path for which this function is invoked\\. The value must start with `/`\\. \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 URI path for which this function is invoked\\. The value must start with `/`\\. \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": "Path", + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], "type": "string" }, - "RestApiId": { + "DependsOn": { "anyOf": [ { - "type": "object" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "ApiKeyRequired": { + "type": "boolean" + }, + "AuthorizationScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthorizationType": { + "type": "string" + }, + "AuthorizerId": { + "type": "string" + }, + "ModelSelectionExpression": { + "type": "string" + }, + "OperationName": { + "type": "string" + }, + "RequestModels": { + "type": "object" + }, + "RequestParameters": { + "type": "object" + }, + "RouteKey": { + "type": "string" + }, + "RouteResponseSelectionExpression": { + "type": "string" + }, + "Target": { "type": "string" } + }, + "required": [ + "ApiId", + "RouteKey" ], - "description": "The identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\. \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 identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\. \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": "RestApiId" + "type": "object" }, - "UnescapeMappingTemplate": { - "title": "Unescapemappingtemplate", - "type": "boolean" + "Type": { + "enum": [ + "AWS::ApiGatewayV2::Route" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, "required": [ - "Method", - "Path" + "Type", + "Properties" ], - "title": "ApiEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Auth": { + "AWS::ApiGatewayV2::Route.ParameterConstraints": { "additionalProperties": false, "properties": { - "ApiKeyRequired": { - "description": "Requires an API key for this API, path, and method\\. \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": "Requires an API key for this API, path, and method\\. \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": "ApiKeyRequired", + "Required": { "type": "boolean" - }, - "AuthorizationScopes": { - "description": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", - "items": { - "type": "string" - }, - "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", - "title": "AuthorizationScopes", - "type": "array" - }, - "Authorizer": { - "description": "The `Authorizer` for a specific state machine\\. \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific state machine\\. \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\. \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": "Authorizer", - "type": "string" - }, - "ResourcePolicy": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ResourcePolicy" - } - ], - "description": "Configure the resource policy for this API and path\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Configure the resource policy for this API and path\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "ResourcePolicy" } }, - "title": "Auth", + "required": [ + "Required" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent": { + "AWS::ApiGatewayV2::RouteResponse": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "type": "string" + }, + "ModelSelectionExpression": { + "type": "string" + }, + "ResponseModels": { + "type": "object" + }, + "ResponseParameters": { + "type": "object" + }, + "RouteId": { + "type": "string" + }, + "RouteResponseKey": { + "type": "string" } + }, + "required": [ + "ApiId", + "RouteId", + "RouteResponseKey" ], - "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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": "object" }, "Type": { - "description": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + "AWS::ApiGatewayV2::RouteResponse" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" } }, @@ -6269,108 +6453,110 @@ "Type", "Properties" ], - "title": "CloudWatchEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties": { + "AWS::ApiGatewayV2::RouteResponse.ParameterConstraints": { "additionalProperties": false, "properties": { - "EventBusName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "title": "EventBusName" - }, - "Input": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "title": "Input" - }, - "InputPath": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "title": "InputPath" - }, - "Pattern": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "title": "Pattern" + "Required": { + "type": "boolean" } }, - "title": "CloudWatchEventProperties", + "required": [ + "Required" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig": { + "AWS::ApiGatewayV2::Stage": { "additionalProperties": false, "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", - "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", - "title": "Arn" - }, - "QueueLogicalId": { - "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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 custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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": "QueueLogicalId", + "Condition": { "type": "string" }, - "Type": { - "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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\\.", + "DeletionPolicy": { "enum": [ - "SQS" + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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": "Type", "type": "string" - } - }, - "title": "DeadLetterConfig", - "type": "object" - }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent": { - "additionalProperties": false, - "properties": { - "Properties": { - "allOf": [ + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "AccessLogSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.AccessLogSettings" + }, + "AccessPolicyId": { + "type": "string" + }, + "ApiId": { + "type": "string" + }, + "AutoDeploy": { + "type": "boolean" + }, + "ClientCertificateId": { + "type": "string" + }, + "DefaultRouteSettings": { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage.RouteSettings" + }, + "DeploymentId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "RouteSettings": { + "type": "object" + }, + "StageName": { + "type": "string" + }, + "StageVariables": { + "type": "object" + }, + "Tags": { + "type": "object" } + }, + "required": [ + "ApiId", + "StageName" ], - "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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": "object" }, "Type": { - "description": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + "AWS::ApiGatewayV2::Stage" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" } }, @@ -6378,261 +6564,299 @@ "Type", "Properties" ], - "title": "EventBridgeRuleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties": { + "AWS::ApiGatewayV2::Stage.AccessLogSettings": { "additionalProperties": false, "properties": { - "DeadLetterConfig": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" - } - ], - "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "title": "DeadLetterConfig" - }, - "EventBusName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", - "title": "EventBusName" - }, - "Input": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", - "title": "Input" - }, - "InputPath": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", - "title": "InputPath" - }, - "Pattern": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", - "title": "Pattern" - }, - "RetryPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", - "title": "RetryPolicy" + "DestinationArn": { + "type": "string" }, - "Target": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget" + "Format": { + "type": "string" } }, - "title": "EventBridgeRuleEventProperties", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget": { + "AWS::ApiGatewayV2::Stage.RouteSettings": { "additionalProperties": false, "properties": { - "Id": { - "$ref": "#/definitions/PassThroughProp" + "DataTraceEnabled": { + "type": "boolean" + }, + "DetailedMetricsEnabled": { + "type": "boolean" + }, + "LoggingLevel": { + "type": "string" + }, + "ThrottlingBurstLimit": { + "type": "number" + }, + "ThrottlingRateLimit": { + "type": "number" } }, - "required": [ - "Id" - ], - "title": "EventBridgeRuleTarget", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Properties": { + "AWS::ApiGatewayV2::VpcLink": { "additionalProperties": false, "properties": { - "Definition": { - "description": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Definition", - "type": "object" + "Condition": { + "type": "string" }, - "DefinitionSubstitutions": { - "description": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.", - "markdownDescription": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.", - "title": "DefinitionSubstitutions", - "type": "object" + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" }, - "DefinitionUri": { + "DependsOn": { "anyOf": [ { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, { - "$ref": "#/definitions/PassThroughProp" + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "title": "DefinitionUri" + ] }, - "Events": { - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleEvent" - }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent" + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent" + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } }, - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEvent" - } - ] + "type": "object" + } }, - "description": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Events", + "required": [ + "Name", + "SubnetIds" + ], "type": "object" }, - "Logging": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::ApiGatewayV2::VpcLink" ], - "description": "Defines which execution history events are logged and where they are logged\\. \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "markdownDescription": "Defines which execution history events are logged and where they are logged\\. \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "title": "Logging" + "type": "string" }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The name of the state machine\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "markdownDescription": "The name of the state machine\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "title": "Name" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::Application": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "PermissionsBoundary": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "markdownDescription": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "title": "PermissionsBoundary" + "type": "string" }, - "Policies": { + "DependsOn": { "anyOf": [ { + "pattern": "^[a-zA-Z0-9]+$", "type": "string" }, - { - "type": "object" - }, { "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" }, "type": "array" } - ], - "description": "One or more policies that this state machine's execution role needs\\. \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\. \nIf the `Role` property is set, this property is ignored\\. \n*Type*: String \\| List \\| Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "One or more policies that this state machine's execution role needs\\. \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\. \nIf the `Role` property is set, this property is ignored\\. \n*Type*: String \\| List \\| Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "Policies" - }, - "Role": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of an IAM role to use as this state machine's execution role\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.", - "markdownDescription": "The ARN of an IAM role to use as this state machine's execution role\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.", - "title": "Role" - }, - "RolePath": { - "$ref": "#/definitions/PassThroughProp" + ] }, - "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\\.", - "markdownDescription": "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\\.", - "title": "Tags", + "Metadata": { "type": "object" }, - "Tracing": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Properties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Application.Tags" + }, + "type": "array" } + }, + "required": [ + "Name" ], - "description": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\. \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "markdownDescription": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\. \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "title": "Tracing" + "type": "object" }, "Type": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "enum": [ + "AWS::AppConfig::Application" ], - "description": "The type of the state machine\\. \n*Valid values*: `STANDARD` or `EXPRESS` \n*Type*: String \n*Required*: No \n*Default*: `STANDARD` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "markdownDescription": "The type of the state machine\\. \n*Valid values*: `STANDARD` or `EXPRESS` \n*Type*: String \n*Required*: No \n*Default*: `STANDARD` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.", - "title": "Type" + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" } }, - "title": "Properties", + "required": [ + "Type", + "Properties" + ], "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__Resource": { + "AWS::AppConfig::Application.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::ConfigurationProfile": { "additionalProperties": false, "properties": { "Condition": { - "$ref": "#/definitions/PassThroughProp" + "type": "string" }, - "Connectors": { - "title": "Connectors" + "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": { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RetrievalRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Tags" + }, + "type": "array" + }, + "Type": { + "type": "string" + }, + "Validators": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile.Validators" + }, + "type": "array" + } + }, + "required": [ + "ApplicationId", + "LocationUri", + "Name" + ], + "type": "object" }, "Type": { "enum": [ - "AWS::Serverless::StateMachine" + "AWS::AppConfig::ConfigurationProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "title": "Type", "type": "string" } }, @@ -6640,212 +6864,217 @@ "Type", "Properties" ], - "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ResourcePolicy": { + "AWS::AppConfig::ConfigurationProfile.Tags": { "additionalProperties": false, "properties": { - "AwsAccountBlacklist": { - "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "AwsAccountBlacklist", - "type": "array" + "Key": { + "type": "string" }, - "AwsAccountWhitelist": { - "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "title": "AwsAccountWhitelist", - "type": "array" + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::ConfigurationProfile.Validators": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" }, - "CustomStatements": { - "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "CustomStatements", - "type": "array" + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::Deployment": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "IntrinsicVpcBlacklist": { - "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { + "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": "object" - } - ] - }, - "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IntrinsicVpcBlacklist", - "type": "array" + "type": "array" + } + ] }, - "IntrinsicVpcWhitelist": { - "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "ConfigurationProfileId": { + "type": "string" + }, + "ConfigurationVersion": { + "type": "string" + }, + "DeploymentStrategyId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Deployment.Tags" }, - { - "type": "object" - } - ] + "type": "array" + } }, - "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "title": "IntrinsicVpcWhitelist", - "type": "array" + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "ConfigurationVersion", + "DeploymentStrategyId", + "EnvironmentId" + ], + "type": "object" }, - "IntrinsicVpceBlacklist": { - "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", - "title": "IntrinsicVpceBlacklist", - "type": "array" - }, - "IntrinsicVpceWhitelist": { - "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IntrinsicVpceWhitelist", - "type": "array" - }, - "IpRangeBlacklist": { - "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "IpRangeBlacklist", - "type": "array" - }, - "IpRangeWhitelist": { - "description": "The IP addresses or address ranges to allow\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", - "title": "IpRangeWhitelist", - "type": "array" + "Type": { + "enum": [ + "AWS::AppConfig::Deployment" + ], + "type": "string" }, - "SourceVpcBlacklist": { - "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", - "title": "SourceVpcBlacklist", - "type": "array" + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppConfig::Deployment.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" }, - "SourceVpcWhitelist": { - "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "object" - } - ] - }, - "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", - "title": "SourceVpcWhitelist", - "type": "array" + "Value": { + "type": "string" } }, - "title": "ResourcePolicy", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleEvent": { + "AWS::AppConfig::DeploymentStrategy": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/ScheduleEventProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "DeploymentDurationInMinutes": { + "type": "number" + }, + "Description": { + "type": "string" + }, + "FinalBakeTimeInMinutes": { + "type": "number" + }, + "GrowthFactor": { + "type": "number" + }, + "GrowthType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReplicateTo": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::DeploymentStrategy.Tags" + }, + "type": "array" } + }, + "required": [ + "DeploymentDurationInMinutes", + "GrowthFactor", + "Name", + "ReplicateTo" ], - "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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": "object" }, "Type": { - "description": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + "AWS::AppConfig::DeploymentStrategy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" } }, @@ -6853,29 +7082,95 @@ "Type", "Properties" ], - "title": "ScheduleEvent", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event": { + "AWS::AppConfig::DeploymentStrategy.Tags": { "additionalProperties": false, "properties": { - "Properties": { - "allOf": [ + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::Environment": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + }, + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" + } + ] + }, + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Monitors": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Environment.Monitors" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AppConfig::Environment.Tags" + }, + "type": "array" } + }, + "required": [ + "ApplicationId", + "Name" ], - "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", - "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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": "object" }, "Type": { - "description": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + "AWS::AppConfig::Environment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "markdownDescription": "The event type\\. \n*Valid values*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" } }, @@ -6883,210 +7178,156504 @@ "Type", "Properties" ], - "title": "ScheduleV2Event", "type": "object" }, - "samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties": { + "AWS::AppConfig::Environment.Monitors": { "additionalProperties": false, "properties": { - "DeadLetterConfig": { - "allOf": [ - { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" - } + "AlarmArn": { + "type": "string" + }, + "AlarmRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::Environment.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppConfig::HostedConfigurationVersion": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", - "title": "DeadLetterConfig" + "type": "string" }, - "Description": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "Description" + ] }, - "EndDate": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "ConfigurationProfileId": { + "type": "string" + }, + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "LatestVersionNumber": { + "type": "number" } + }, + "required": [ + "ApplicationId", + "ConfigurationProfileId", + "Content", + "ContentType" ], - "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "EndDate" + "type": "object" }, - "FlexibleTimeWindow": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::AppConfig::HostedConfigurationVersion" ], - "description": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "FlexibleTimeWindow" + "type": "string" }, - "GroupName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "GroupName" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppFlow::Connector": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "Input": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", - "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", - "title": "Input" + "type": "string" }, - "KmsKeyArn": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "KmsKeyArn" + ] }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ConnectorLabel": { + "type": "string" + }, + "ConnectorProvisioningConfig": { + "$ref": "#/definitions/AWS::AppFlow::Connector.ConnectorProvisioningConfig" + }, + "ConnectorProvisioningType": { + "type": "string" + }, + "Description": { + "type": "string" } + }, + "required": [ + "ConnectorProvisioningConfig", + "ConnectorProvisioningType" ], - "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "Name" + "type": "object" }, - "PermissionsBoundary": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::AppFlow::Connector" ], - "description": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", - "title": "PermissionsBoundary" + "type": "string" }, - "RetryPolicy": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "title": "RetryPolicy" + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppFlow::Connector.ConnectorProvisioningConfig": { + "additionalProperties": false, + "properties": { + "Lambda": { + "$ref": "#/definitions/AWS::AppFlow::Connector.LambdaConnectorProvisioningConfig" + } + }, + "type": "object" + }, + "AWS::AppFlow::Connector.LambdaConnectorProvisioningConfig": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + } + }, + "required": [ + "LambdaArn" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" }, - "RoleArn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "DeletionPolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", - "title": "RoleArn" + "type": "string" }, - "ScheduleExpression": { - "allOf": [ + "DependsOn": { + "anyOf": [ { - "$ref": "#/definitions/PassThroughProp" + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + { + "items": { + "pattern": "^[a-zA-Z0-9]+$", + "type": "string" + }, + "type": "array" } - ], - "description": "The scheduling expression that determines when and how often the schedule runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The scheduling expression that determines when and how often the schedule runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "ScheduleExpression" + ] }, - "ScheduleExpressionTimezone": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" + "Metadata": { + "type": "object" + }, + "Properties": { + "additionalProperties": false, + "properties": { + "ConnectionMode": { + "type": "string" + }, + "ConnectorLabel": { + "type": "string" + }, + "ConnectorProfileConfig": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig" + }, + "ConnectorProfileName": { + "type": "string" + }, + "ConnectorType": { + "type": "string" + }, + "KMSArn": { + "type": "string" } + }, + "required": [ + "ConnectionMode", + "ConnectorProfileName", + "ConnectorType" ], - "description": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "ScheduleExpressionTimezone" + "type": "object" }, - "StartDate": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "Type": { + "enum": [ + "AWS::AppFlow::ConnectorProfile" ], - "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "StartDate" + "type": "string" }, - "State": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" ], - "description": "The state of the schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", - "markdownDescription": "The state of the schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", - "title": "State" + "type": "string" } }, - "title": "ScheduleV2EventProperties", + "required": [ + "Type", + "Properties" + ], "type": "object" - } - }, - "properties": { - "Globals": { - "$ref": "#/definitions/__main____Globals" }, - "Resources": { - "additionalProperties": { - "anyOf": [ + "AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + }, + "SecretKey": { + "type": "string" + } + }, + "required": [ + "ApiKey", + "SecretKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ApiKeyCredentials": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + }, + "ApiSecretKey": { + "type": "string" + } + }, + "required": [ + "ApiKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.BasicAuthCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest": { + "additionalProperties": false, + "properties": { + "AuthCode": { + "type": "string" + }, + "RedirectUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ConnectorProfileConfig": { + "additionalProperties": false, + "properties": { + "ConnectorProfileCredentials": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials" + }, + "ConnectorProfileProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Amplitude": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.AmplitudeConnectorProfileCredentials" + }, + "CustomConnector": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileCredentials" + }, + "Datadog": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials" + }, + "Dynatrace": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials" + }, + "GoogleAnalytics": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials" + }, + "InforNexus": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials" + }, + "Redshift": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials" + }, + "Singular": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials" + }, + "Slack": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials" + }, + "Snowflake": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials" + }, + "Trendmicro": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials" + }, + "Veeva": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "CustomConnector": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomConnectorProfileProperties" + }, + "Datadog": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties" + }, + "Dynatrace": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties" + }, + "InforNexus": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties" + }, + "Redshift": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties" + }, + "Slack": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties" + }, + "Snowflake": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties" + }, + "Veeva": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.CustomAuthCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "CustomAuthenticationType": { + "type": "string" + } + }, + "required": [ + "CustomAuthenticationType" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.CustomConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ApiKeyCredentials" + }, + "AuthenticationType": { + "type": "string" + }, + "Basic": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.BasicAuthCredentials" + }, + "Custom": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.CustomAuthCredentials" + }, + "Oauth2": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuth2Credentials" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.CustomConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "OAuth2Properties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuth2Properties" + }, + "ProfileProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + }, + "ApplicationKey": { + "type": "string" + } + }, + "required": [ + "ApiKey", + "ApplicationKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.DatadogConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiToken": { + "type": "string" + } + }, + "required": [ + "ApiToken" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.DynatraceConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.GoogleAnalyticsConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + }, + "RefreshToken": { + "type": "string" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessKeyId": { + "type": "string" + }, + "Datakey": { + "type": "string" + }, + "SecretAccessKey": { + "type": "string" + }, + "UserId": { + "type": "string" + } + }, + "required": [ + "AccessKeyId", + "Datakey", + "SecretAccessKey", + "UserId" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.InforNexusConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.MarketoConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.OAuth2Credentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "OAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + }, + "RefreshToken": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.OAuth2Properties": { + "additionalProperties": false, + "properties": { + "OAuth2GrantType": { + "type": "string" + }, + "TokenUrl": { + "type": "string" + }, + "TokenUrlCustomProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.OAuthCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + }, + "RefreshToken": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.OAuthProperties": { + "additionalProperties": false, + "properties": { + "AuthCodeUrl": { + "type": "string" + }, + "OAuthScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TokenUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.RedshiftConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "DataApiRoleArn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DatabaseUrl": { + "type": "string" + }, + "IsRedshiftServerless": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "BucketName", + "RoleArn" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "BasicAuthCredentials": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.BasicAuthCredentials" + }, + "OAuthCredentials": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthCredentials" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SAPODataConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "ApplicationHostUrl": { + "type": "string" + }, + "ApplicationServicePath": { + "type": "string" + }, + "ClientNumber": { + "type": "string" + }, + "LogonLanguage": { + "type": "string" + }, + "OAuthProperties": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.OAuthProperties" + }, + "PortNumber": { + "type": "number" + }, + "PrivateLinkServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientCredentialsArn": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + }, + "RefreshToken": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SalesforceConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + }, + "isSandboxEnvironment": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ServiceNowConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SingularConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiKey": { + "type": "string" + } + }, + "required": [ + "ApiKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SlackConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.SnowflakeConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "AccountName": { + "type": "string" + }, + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "PrivateLinkServiceName": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "Stage": { + "type": "string" + }, + "Warehouse": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Stage", + "Warehouse" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.TrendmicroConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "ApiSecretKey": { + "type": "string" + } + }, + "required": [ + "ApiSecretKey" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.VeevaConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileCredentials": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "ConnectorOAuthRequest": { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile.ConnectorOAuthRequest" + } + }, + "required": [ + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "AWS::AppFlow::ConnectorProfile.ZendeskConnectorProfileProperties": { + "additionalProperties": false, + "properties": { + "InstanceUrl": { + "type": "string" + } + }, + "required": [ + "InstanceUrl" + ], + "type": "object" + }, + "AWS::AppFlow::Flow": { + "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": { + "Description": { + "type": "string" + }, + "DestinationFlowConfigList": { + "items": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationFlowConfig" + }, + "type": "array" + }, + "FlowName": { + "type": "string" + }, + "KMSArn": { + "type": "string" + }, + "MetadataCatalogConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.MetadataCatalogConfig" + }, + "SourceFlowConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SourceFlowConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Tasks": { + "items": { + "$ref": "#/definitions/AWS::AppFlow::Flow.Task" + }, + "type": "array" + }, + "TriggerConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.TriggerConfig" + } + }, + "required": [ + "DestinationFlowConfigList", + "FlowName", + "SourceFlowConfig", + "Tasks", + "TriggerConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppFlow::Flow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.AggregationConfig": { + "additionalProperties": false, + "properties": { + "AggregationType": { + "type": "string" + }, + "TargetFileSize": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.AmplitudeSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ConnectorOperator": { + "additionalProperties": false, + "properties": { + "Amplitude": { + "type": "string" + }, + "CustomConnector": { + "type": "string" + }, + "Datadog": { + "type": "string" + }, + "Dynatrace": { + "type": "string" + }, + "GoogleAnalytics": { + "type": "string" + }, + "InforNexus": { + "type": "string" + }, + "Marketo": { + "type": "string" + }, + "S3": { + "type": "string" + }, + "SAPOData": { + "type": "string" + }, + "Salesforce": { + "type": "string" + }, + "ServiceNow": { + "type": "string" + }, + "Singular": { + "type": "string" + }, + "Slack": { + "type": "string" + }, + "Trendmicro": { + "type": "string" + }, + "Veeva": { + "type": "string" + }, + "Zendesk": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.CustomConnectorDestinationProperties": { + "additionalProperties": false, + "properties": { + "CustomProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "EntityName": { + "type": "string" + }, + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "IdFieldNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WriteOperationType": { + "type": "string" + } + }, + "required": [ + "EntityName" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.CustomConnectorSourceProperties": { + "additionalProperties": false, + "properties": { + "CustomProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "EntityName": { + "type": "string" + } + }, + "required": [ + "EntityName" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.DatadogSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.DestinationConnectorProperties": { + "additionalProperties": false, + "properties": { + "CustomConnector": { + "$ref": "#/definitions/AWS::AppFlow::Flow.CustomConnectorDestinationProperties" + }, + "EventBridge": { + "$ref": "#/definitions/AWS::AppFlow::Flow.EventBridgeDestinationProperties" + }, + "LookoutMetrics": { + "$ref": "#/definitions/AWS::AppFlow::Flow.LookoutMetricsDestinationProperties" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoDestinationProperties" + }, + "Redshift": { + "$ref": "#/definitions/AWS::AppFlow::Flow.RedshiftDestinationProperties" + }, + "S3": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3DestinationProperties" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataDestinationProperties" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceDestinationProperties" + }, + "Snowflake": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SnowflakeDestinationProperties" + }, + "Upsolver": { + "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverDestinationProperties" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskDestinationProperties" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.DestinationFlowConfig": { + "additionalProperties": false, + "properties": { + "ApiVersion": { + "type": "string" + }, + "ConnectorProfileName": { + "type": "string" + }, + "ConnectorType": { + "type": "string" + }, + "DestinationConnectorProperties": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DestinationConnectorProperties" + } + }, + "required": [ + "ConnectorType", + "DestinationConnectorProperties" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.DynatraceSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ErrorHandlingConfig": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "FailOnFirstError": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.EventBridgeDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.GlueDataCatalog": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TablePrefix": { + "type": "string" + } + }, + "required": [ + "DatabaseName", + "RoleArn", + "TablePrefix" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.IncrementalPullConfig": { + "additionalProperties": false, + "properties": { + "DatetimeTypeFieldName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.InforNexusSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.LookoutMetricsDestinationProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.MarketoDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.MarketoSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.MetadataCatalogConfig": { + "additionalProperties": false, + "properties": { + "GlueDataCatalog": { + "$ref": "#/definitions/AWS::AppFlow::Flow.GlueDataCatalog" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.PrefixConfig": { + "additionalProperties": false, + "properties": { + "PathPrefixHierarchy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PrefixFormat": { + "type": "string" + }, + "PrefixType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.RedshiftDestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketPrefix": { + "type": "string" + }, + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "IntermediateBucketName": { + "type": "string" + }, + "Object": { + "type": "string" + } + }, + "required": [ + "IntermediateBucketName", + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.S3DestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "S3OutputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3OutputFormatConfig" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.S3InputFormatConfig": { + "additionalProperties": false, + "properties": { + "S3InputFileType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.S3OutputFormatConfig": { + "additionalProperties": false, + "properties": { + "AggregationConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig" + }, + "FileType": { + "type": "string" + }, + "PrefixConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig" + }, + "PreserveSourceDataTyping": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.S3SourceProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "S3InputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3InputFormatConfig" + } + }, + "required": [ + "BucketName", + "BucketPrefix" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SAPODataDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "IdFieldNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ObjectPath": { + "type": "string" + }, + "SuccessResponseHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SuccessResponseHandlingConfig" + }, + "WriteOperationType": { + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SAPODataSourceProperties": { + "additionalProperties": false, + "properties": { + "ObjectPath": { + "type": "string" + } + }, + "required": [ + "ObjectPath" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SalesforceDestinationProperties": { + "additionalProperties": false, + "properties": { + "DataTransferApi": { + "type": "string" + }, + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "IdFieldNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Object": { + "type": "string" + }, + "WriteOperationType": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SalesforceSourceProperties": { + "additionalProperties": false, + "properties": { + "DataTransferApi": { + "type": "string" + }, + "EnableDynamicFieldUpdate": { + "type": "boolean" + }, + "IncludeDeletedRecords": { + "type": "boolean" + }, + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ScheduledTriggerProperties": { + "additionalProperties": false, + "properties": { + "DataPullMode": { + "type": "string" + }, + "FirstExecutionFrom": { + "type": "number" + }, + "FlowErrorDeactivationThreshold": { + "type": "number" + }, + "ScheduleEndTime": { + "type": "number" + }, + "ScheduleExpression": { + "type": "string" + }, + "ScheduleOffset": { + "type": "number" + }, + "ScheduleStartTime": { + "type": "number" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ServiceNowSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SingularSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SlackSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SnowflakeDestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketPrefix": { + "type": "string" + }, + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "IntermediateBucketName": { + "type": "string" + }, + "Object": { + "type": "string" + } + }, + "required": [ + "IntermediateBucketName", + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SourceConnectorProperties": { + "additionalProperties": false, + "properties": { + "Amplitude": { + "$ref": "#/definitions/AWS::AppFlow::Flow.AmplitudeSourceProperties" + }, + "CustomConnector": { + "$ref": "#/definitions/AWS::AppFlow::Flow.CustomConnectorSourceProperties" + }, + "Datadog": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DatadogSourceProperties" + }, + "Dynatrace": { + "$ref": "#/definitions/AWS::AppFlow::Flow.DynatraceSourceProperties" + }, + "GoogleAnalytics": { + "$ref": "#/definitions/AWS::AppFlow::Flow.GoogleAnalyticsSourceProperties" + }, + "InforNexus": { + "$ref": "#/definitions/AWS::AppFlow::Flow.InforNexusSourceProperties" + }, + "Marketo": { + "$ref": "#/definitions/AWS::AppFlow::Flow.MarketoSourceProperties" + }, + "S3": { + "$ref": "#/definitions/AWS::AppFlow::Flow.S3SourceProperties" + }, + "SAPOData": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SAPODataSourceProperties" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SalesforceSourceProperties" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ServiceNowSourceProperties" + }, + "Singular": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SingularSourceProperties" + }, + "Slack": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SlackSourceProperties" + }, + "Trendmicro": { + "$ref": "#/definitions/AWS::AppFlow::Flow.TrendmicroSourceProperties" + }, + "Veeva": { + "$ref": "#/definitions/AWS::AppFlow::Flow.VeevaSourceProperties" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ZendeskSourceProperties" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.SourceFlowConfig": { + "additionalProperties": false, + "properties": { + "ApiVersion": { + "type": "string" + }, + "ConnectorProfileName": { + "type": "string" + }, + "ConnectorType": { + "type": "string" + }, + "IncrementalPullConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.IncrementalPullConfig" + }, + "SourceConnectorProperties": { + "$ref": "#/definitions/AWS::AppFlow::Flow.SourceConnectorProperties" + } + }, + "required": [ + "ConnectorType", + "SourceConnectorProperties" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.SuccessResponseHandlingConfig": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppFlow::Flow.Task": { + "additionalProperties": false, + "properties": { + "ConnectorOperator": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ConnectorOperator" + }, + "DestinationField": { + "type": "string" + }, + "SourceFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TaskProperties": { + "items": { + "$ref": "#/definitions/AWS::AppFlow::Flow.TaskPropertiesObject" + }, + "type": "array" + }, + "TaskType": { + "type": "string" + } + }, + "required": [ + "SourceFields", + "TaskType" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.TaskPropertiesObject": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.TrendmicroSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerProperties": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ScheduledTriggerProperties" + }, + "TriggerType": { + "type": "string" + } + }, + "required": [ + "TriggerType" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.UpsolverDestinationProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "S3OutputFormatConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig" + } + }, + "required": [ + "BucketName", + "S3OutputFormatConfig" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.UpsolverS3OutputFormatConfig": { + "additionalProperties": false, + "properties": { + "AggregationConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.AggregationConfig" + }, + "FileType": { + "type": "string" + }, + "PrefixConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.PrefixConfig" + } + }, + "required": [ + "PrefixConfig" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.VeevaSourceProperties": { + "additionalProperties": false, + "properties": { + "DocumentType": { + "type": "string" + }, + "IncludeAllVersions": { + "type": "boolean" + }, + "IncludeRenditions": { + "type": "boolean" + }, + "IncludeSourceFiles": { + "type": "boolean" + }, + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ZendeskDestinationProperties": { + "additionalProperties": false, + "properties": { + "ErrorHandlingConfig": { + "$ref": "#/definitions/AWS::AppFlow::Flow.ErrorHandlingConfig" + }, + "IdFieldNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Object": { + "type": "string" + }, + "WriteOperationType": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppFlow::Flow.ZendeskSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::AppIntegrations::DataIntegration": { + "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": { + "Description": { + "type": "string" + }, + "KmsKey": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ScheduleConfig": { + "$ref": "#/definitions/AWS::AppIntegrations::DataIntegration.ScheduleConfig" + }, + "SourceURI": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KmsKey", + "Name", + "ScheduleConfig", + "SourceURI" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppIntegrations::DataIntegration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppIntegrations::DataIntegration.ScheduleConfig": { + "additionalProperties": false, + "properties": { + "FirstExecutionFrom": { + "type": "string" + }, + "Object": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "FirstExecutionFrom", + "Object", + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::AppIntegrations::EventIntegration": { + "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": { + "Description": { + "type": "string" + }, + "EventBridgeBus": { + "type": "string" + }, + "EventFilter": { + "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.EventFilter" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "EventBridgeBus", + "EventFilter", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppIntegrations::EventIntegration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppIntegrations::EventIntegration.EventFilter": { + "additionalProperties": false, + "properties": { + "Source": { + "type": "string" + } + }, + "required": [ + "Source" + ], + "type": "object" + }, + "AWS::AppIntegrations::EventIntegration.EventIntegrationAssociation": { + "additionalProperties": false, + "properties": { + "ClientAssociationMetadata": { + "items": { + "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration.Metadata" + }, + "type": "array" + }, + "ClientId": { + "type": "string" + }, + "EventBridgeRuleName": { + "type": "string" + }, + "EventIntegrationAssociationArn": { + "type": "string" + }, + "EventIntegrationAssociationId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppIntegrations::EventIntegration.Metadata": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute": { + "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": { + "GatewayRouteName": { + "type": "string" + }, + "MeshName": { + "type": "string" + }, + "MeshOwner": { + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VirtualGatewayName": { + "type": "string" + } + }, + "required": [ + "MeshName", + "Spec", + "VirtualGatewayName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppMesh::GatewayRoute" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + }, + "Suffix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite": { + "additionalProperties": false, + "properties": { + "DefaultTargetHostname": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch" + }, + "Regex": { + "type": "string" + }, + "Suffix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch": { + "additionalProperties": false, + "properties": { + "End": { + "type": "number" + }, + "Start": { + "type": "number" + } + }, + "required": [ + "End", + "Start" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteSpec": { + "additionalProperties": false, + "properties": { + "GrpcRoute": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRoute" + }, + "Http2Route": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + }, + "HttpRoute": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoute" + }, + "Priority": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteTarget": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + }, + "VirtualService": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService" + } + }, + "required": [ + "VirtualService" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GatewayRouteVirtualService": { + "additionalProperties": false, + "properties": { + "VirtualServiceName": { + "type": "string" + } + }, + "required": [ + "VirtualServiceName" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteAction": { + "additionalProperties": false, + "properties": { + "Rewrite": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite" + }, + "Target": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMatch": { + "additionalProperties": false, + "properties": { + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch" + }, + "Metadata": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata" + }, + "type": "array" + }, + "Port": { + "type": "number" + }, + "ServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteMetadata": { + "additionalProperties": false, + "properties": { + "Invert": { + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteMetadataMatch" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.GrpcGatewayRouteRewrite": { + "additionalProperties": false, + "properties": { + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteAction": { + "additionalProperties": false, + "properties": { + "Rewrite": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite" + }, + "Target": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteTarget" + } + }, + "required": [ + "Target" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader": { + "additionalProperties": false, + "properties": { + "Invert": { + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeaderMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteRangeMatch" + }, + "Regex": { + "type": "string" + }, + "Suffix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteMatch": { + "additionalProperties": false, + "properties": { + "Headers": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRouteHeader" + }, + "type": "array" + }, + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameMatch" + }, + "Method": { + "type": "string" + }, + "Path": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpPathMatch" + }, + "Port": { + "type": "number" + }, + "Prefix": { + "type": "string" + }, + "QueryParameters": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.QueryParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite": { + "additionalProperties": false, + "properties": { + "DefaultPrefix": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpGatewayRouteRewrite": { + "additionalProperties": false, + "properties": { + "Hostname": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.GatewayRouteHostnameRewrite" + }, + "Path": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePathRewrite" + }, + "Prefix": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpGatewayRoutePrefixRewrite" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpPathMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::GatewayRoute.QueryParameter": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute.HttpQueryParameterMatch" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::Mesh": { + "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": { + "MeshName": { + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppMesh::Mesh" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::AppMesh::Mesh.EgressFilter": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::AppMesh::Mesh.MeshServiceDiscovery": { + "additionalProperties": false, + "properties": { + "IpPreference": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Mesh.MeshSpec": { + "additionalProperties": false, + "properties": { + "EgressFilter": { + "$ref": "#/definitions/AWS::AppMesh::Mesh.EgressFilter" + }, + "ServiceDiscovery": { + "$ref": "#/definitions/AWS::AppMesh::Mesh.MeshServiceDiscovery" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route": { + "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": { + "MeshName": { + "type": "string" + }, + "MeshOwner": { + "type": "string" + }, + "RouteName": { + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::Route.RouteSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VirtualRouterName": { + "type": "string" + } + }, + "required": [ + "MeshName", + "Spec", + "VirtualRouterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppMesh::Route" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppMesh::Route.Duration": { + "additionalProperties": false, + "properties": { + "Unit": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRetryPolicy": { + "additionalProperties": false, + "properties": { + "GrpcRetryEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "HttpRetryEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxRetries": { + "type": "number" + }, + "PerRetryTimeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + }, + "TcpRetryEvents": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "MaxRetries", + "PerRetryTimeout" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteAction" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMatch" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRetryPolicy" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcTimeout" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteAction": { + "additionalProperties": false, + "properties": { + "WeightedTargets": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" + }, + "type": "array" + } + }, + "required": [ + "WeightedTargets" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteMatch": { + "additionalProperties": false, + "properties": { + "Metadata": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadata" + }, + "type": "array" + }, + "MethodName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteMetadata": { + "additionalProperties": false, + "properties": { + "Invert": { + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::Route.GrpcRouteMetadataMatchMethod": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange" + }, + "Regex": { + "type": "string" + }, + "Suffix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.GrpcTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HeaderMatchMethod": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Range": { + "$ref": "#/definitions/AWS::AppMesh::Route.MatchRange" + }, + "Regex": { + "type": "string" + }, + "Suffix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpPathMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpQueryParameterMatch": { + "additionalProperties": false, + "properties": { + "Exact": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpRetryPolicy": { + "additionalProperties": false, + "properties": { + "HttpRetryEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxRetries": { + "type": "number" + }, + "PerRetryTimeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + }, + "TcpRetryEvents": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "MaxRetries", + "PerRetryTimeout" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteAction" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteMatch" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRetryPolicy" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpTimeout" + } + }, + "required": [ + "Action", + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRouteAction": { + "additionalProperties": false, + "properties": { + "WeightedTargets": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" + }, + "type": "array" + } + }, + "required": [ + "WeightedTargets" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRouteHeader": { + "additionalProperties": false, + "properties": { + "Invert": { + "type": "boolean" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.HeaderMatchMethod" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::Route.HttpRouteMatch": { + "additionalProperties": false, + "properties": { + "Headers": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRouteHeader" + }, + "type": "array" + }, + "Method": { + "type": "string" + }, + "Path": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpPathMatch" + }, + "Port": { + "type": "number" + }, + "Prefix": { + "type": "string" + }, + "QueryParameters": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.QueryParameter" + }, + "type": "array" + }, + "Scheme": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.HttpTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.MatchRange": { + "additionalProperties": false, + "properties": { + "End": { + "type": "number" + }, + "Start": { + "type": "number" + } + }, + "required": [ + "End", + "Start" + ], + "type": "object" + }, + "AWS::AppMesh::Route.QueryParameter": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpQueryParameterMatch" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::AppMesh::Route.RouteSpec": { + "additionalProperties": false, + "properties": { + "GrpcRoute": { + "$ref": "#/definitions/AWS::AppMesh::Route.GrpcRoute" + }, + "Http2Route": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute" + }, + "HttpRoute": { + "$ref": "#/definitions/AWS::AppMesh::Route.HttpRoute" + }, + "Priority": { + "type": "number" + }, + "TcpRoute": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRoute" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.TcpRoute": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteAction" + }, + "Match": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpRouteMatch" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::Route.TcpTimeout" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::AppMesh::Route.TcpRouteAction": { + "additionalProperties": false, + "properties": { + "WeightedTargets": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::Route.WeightedTarget" + }, + "type": "array" + } + }, + "required": [ + "WeightedTargets" + ], + "type": "object" + }, + "AWS::AppMesh::Route.TcpRouteMatch": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.TcpTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::Route.Duration" + } + }, + "type": "object" + }, + "AWS::AppMesh::Route.WeightedTarget": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + }, + "VirtualNode": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "VirtualNode", + "Weight" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway": { + "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": { + "MeshName": { + "type": "string" + }, + "MeshOwner": { + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewaySpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VirtualGatewayName": { + "type": "string" + } + }, + "required": [ + "MeshName", + "Spec" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppMesh::VirtualGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers": { + "additionalProperties": false, + "properties": { + "Exact": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.SubjectAlternativeNames": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNameMatchers" + } + }, + "required": [ + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults": { + "additionalProperties": false, + "properties": { + "ClientPolicy": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicy": { + "additionalProperties": false, + "properties": { + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayClientPolicyTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate" + }, + "Enforce": { + "type": "boolean" + }, + "Ports": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext" + } + }, + "required": [ + "Validation" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayClientTlsCertificate": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayFileAccessLog": { + "additionalProperties": false, + "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.LoggingFormat" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "type": "number" + }, + "IntervalMillis": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "TimeoutMillis": { + "type": "number" + }, + "UnhealthyThreshold": { + "type": "number" + } + }, + "required": [ + "HealthyThreshold", + "IntervalMillis", + "Protocol", + "TimeoutMillis", + "UnhealthyThreshold" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListener": { + "additionalProperties": false, + "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayConnectionPool" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayHealthCheckPolicy" + }, + "PortMapping": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping" + }, + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls" + } + }, + "required": [ + "PortMapping" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate" + }, + "Mode": { + "type": "string" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext" + } + }, + "required": [ + "Certificate", + "Mode" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + } + }, + "required": [ + "CertificateArn" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsCertificate": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsAcmCertificate" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsFileCertificate": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "type": "string" + }, + "PrivateKey": { + "type": "string" + } + }, + "required": [ + "CertificateChain", + "PrivateKey" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsSdsCertificate": { + "additionalProperties": false, + "properties": { + "SecretName": { + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayListenerTlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayLogging": { + "additionalProperties": false, + "properties": { + "AccessLog": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayAccessLog" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayPortMapping": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "required": [ + "Port", + "Protocol" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewaySpec": { + "additionalProperties": false, + "properties": { + "BackendDefaults": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayBackendDefaults" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayListener" + }, + "type": "array" + }, + "Logging": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayLogging" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CertificateAuthorityArns" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "type": "string" + } + }, + "required": [ + "CertificateChain" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust": { + "additionalProperties": false, + "properties": { + "SecretName": { + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextAcmTrust" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextFileTrust" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway.VirtualGatewayTlsValidationContextSdsTrust" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode": { + "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": { + "MeshName": { + "type": "string" + }, + "MeshOwner": { + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VirtualNodeName": { + "type": "string" + } + }, + "required": [ + "MeshName", + "Spec" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppMesh::VirtualNode" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.AccessLog": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.FileAccessLog" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapInstanceAttribute" + }, + "type": "array" + }, + "IpPreference": { + "type": "string" + }, + "NamespaceName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "NamespaceName", + "ServiceName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.Backend": { + "additionalProperties": false, + "properties": { + "VirtualService": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualServiceBackend" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.BackendDefaults": { + "additionalProperties": false, + "properties": { + "ClientPolicy": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ClientPolicy": { + "additionalProperties": false, + "properties": { + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicyTls" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ClientPolicyTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientTlsCertificate" + }, + "Enforce": { + "type": "boolean" + }, + "Ports": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContext" + } + }, + "required": [ + "Validation" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ClientTlsCertificate": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.DnsServiceDiscovery": { + "additionalProperties": false, + "properties": { + "Hostname": { + "type": "string" + }, + "IpPreference": { + "type": "string" + }, + "ResponseType": { + "type": "string" + } + }, + "required": [ + "Hostname" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.Duration": { + "additionalProperties": false, + "properties": { + "Unit": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.FileAccessLog": { + "additionalProperties": false, + "properties": { + "Format": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.LoggingFormat" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.GrpcTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.HealthCheck": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "type": "number" + }, + "IntervalMillis": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "TimeoutMillis": { + "type": "number" + }, + "UnhealthyThreshold": { + "type": "number" + } + }, + "required": [ + "HealthyThreshold", + "IntervalMillis", + "Protocol", + "TimeoutMillis", + "UnhealthyThreshold" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.HttpTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "PerRequest": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.JsonFormatRef": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.Listener": { + "additionalProperties": false, + "properties": { + "ConnectionPool": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HealthCheck" + }, + "OutlierDetection": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.OutlierDetection" + }, + "PortMapping": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.PortMapping" + }, + "TLS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTls" + }, + "Timeout": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTimeout" + } + }, + "required": [ + "PortMapping" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTimeout": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.GrpcTimeout" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.HttpTimeout" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TcpTimeout" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTls": { + "additionalProperties": false, + "properties": { + "Certificate": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsCertificate" + }, + "Mode": { + "type": "string" + }, + "Validation": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContext" + } + }, + "required": [ + "Certificate", + "Mode" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + } + }, + "required": [ + "CertificateArn" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsCertificate": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsAcmCertificate" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsFileCertificate": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "type": "string" + }, + "PrivateKey": { + "type": "string" + } + }, + "required": [ + "CertificateChain", + "PrivateKey" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsSdsCertificate": { + "additionalProperties": false, + "properties": { + "SecretName": { + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ListenerTlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.Logging": { + "additionalProperties": false, + "properties": { + "AccessLog": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AccessLog" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.LoggingFormat": { + "additionalProperties": false, + "properties": { + "Json": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.JsonFormatRef" + }, + "type": "array" + }, + "Text": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.OutlierDetection": { + "additionalProperties": false, + "properties": { + "BaseEjectionDuration": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "Interval": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + }, + "MaxEjectionPercent": { + "type": "number" + }, + "MaxServerErrors": { + "type": "number" + } + }, + "required": [ + "BaseEjectionDuration", + "Interval", + "MaxEjectionPercent", + "MaxServerErrors" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.PortMapping": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "required": [ + "Port", + "Protocol" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.ServiceDiscovery": { + "additionalProperties": false, + "properties": { + "AWSCloudMap": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.AwsCloudMapServiceDiscovery" + }, + "DNS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.DnsServiceDiscovery" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers": { + "additionalProperties": false, + "properties": { + "Exact": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.SubjectAlternativeNames": { + "additionalProperties": false, + "properties": { + "Match": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNameMatchers" + } + }, + "required": [ + "Match" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TcpTimeout": { + "additionalProperties": false, + "properties": { + "Idle": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Duration" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContext": { + "additionalProperties": false, + "properties": { + "SubjectAlternativeNames": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.SubjectAlternativeNames" + }, + "Trust": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextTrust" + } + }, + "required": [ + "Trust" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CertificateAuthorityArns" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust": { + "additionalProperties": false, + "properties": { + "CertificateChain": { + "type": "string" + } + }, + "required": [ + "CertificateChain" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust": { + "additionalProperties": false, + "properties": { + "SecretName": { + "type": "string" + } + }, + "required": [ + "SecretName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.TlsValidationContextTrust": { + "additionalProperties": false, + "properties": { + "ACM": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextAcmTrust" + }, + "File": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextFileTrust" + }, + "SDS": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.TlsValidationContextSdsTrust" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeConnectionPool": { + "additionalProperties": false, + "properties": { + "GRPC": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool" + }, + "HTTP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool" + }, + "HTTP2": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool" + }, + "TCP": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeGrpcConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttp2ConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxRequests": { + "type": "number" + } + }, + "required": [ + "MaxRequests" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeHttpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + }, + "MaxPendingRequests": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeSpec": { + "additionalProperties": false, + "properties": { + "BackendDefaults": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.BackendDefaults" + }, + "Backends": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Backend" + }, + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Listener" + }, + "type": "array" + }, + "Logging": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.Logging" + }, + "ServiceDiscovery": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ServiceDiscovery" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualNodeTcpConnectionPool": { + "additionalProperties": false, + "properties": { + "MaxConnections": { + "type": "number" + } + }, + "required": [ + "MaxConnections" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualNode.VirtualServiceBackend": { + "additionalProperties": false, + "properties": { + "ClientPolicy": { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode.ClientPolicy" + }, + "VirtualServiceName": { + "type": "string" + } + }, + "required": [ + "VirtualServiceName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualRouter": { + "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": { + "MeshName": { + "type": "string" + }, + "MeshOwner": { + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VirtualRouterName": { + "type": "string" + } + }, + "required": [ + "MeshName", + "Spec" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppMesh::VirtualRouter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualRouter.PortMapping": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + } + }, + "required": [ + "Port", + "Protocol" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualRouter.VirtualRouterListener": { + "additionalProperties": false, + "properties": { + "PortMapping": { + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.PortMapping" + } + }, + "required": [ + "PortMapping" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualRouter.VirtualRouterSpec": { + "additionalProperties": false, + "properties": { + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter.VirtualRouterListener" + }, + "type": "array" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualService": { + "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": { + "MeshName": { + "type": "string" + }, + "MeshOwner": { + "type": "string" + }, + "Spec": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VirtualServiceName": { + "type": "string" + } + }, + "required": [ + "MeshName", + "Spec", + "VirtualServiceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppMesh::VirtualService" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualService.VirtualNodeServiceProvider": { + "additionalProperties": false, + "properties": { + "VirtualNodeName": { + "type": "string" + } + }, + "required": [ + "VirtualNodeName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualService.VirtualRouterServiceProvider": { + "additionalProperties": false, + "properties": { + "VirtualRouterName": { + "type": "string" + } + }, + "required": [ + "VirtualRouterName" + ], + "type": "object" + }, + "AWS::AppMesh::VirtualService.VirtualServiceProvider": { + "additionalProperties": false, + "properties": { + "VirtualNode": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualNodeServiceProvider" + }, + "VirtualRouter": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualRouterServiceProvider" + } + }, + "type": "object" + }, + "AWS::AppMesh::VirtualService.VirtualServiceSpec": { + "additionalProperties": false, + "properties": { + "Provider": { + "$ref": "#/definitions/AWS::AppMesh::VirtualService.VirtualServiceProvider" + } + }, + "type": "object" + }, + "AWS::AppRunner::ObservabilityConfiguration": { + "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": { + "ObservabilityConfigurationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TraceConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::ObservabilityConfiguration.TraceConfiguration" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::ObservabilityConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::AppRunner::ObservabilityConfiguration.TraceConfiguration": { + "additionalProperties": false, + "properties": { + "Vendor": { + "type": "string" + } + }, + "required": [ + "Vendor" + ], + "type": "object" + }, + "AWS::AppRunner::Service": { + "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": { + "AutoScalingConfigurationArn": { + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EncryptionConfiguration" + }, + "HealthCheckConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.HealthCheckConfiguration" + }, + "InstanceConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.InstanceConfiguration" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.NetworkConfiguration" + }, + "ObservabilityConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.ServiceObservabilityConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SourceConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::Service" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppRunner::Service.AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "AccessRoleArn": { + "type": "string" + }, + "ConnectionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.CodeConfiguration": { + "additionalProperties": false, + "properties": { + "CodeConfigurationValues": { + "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfigurationValues" + }, + "ConfigurationSource": { + "type": "string" + } + }, + "required": [ + "ConfigurationSource" + ], + "type": "object" + }, + "AWS::AppRunner::Service.CodeConfigurationValues": { + "additionalProperties": false, + "properties": { + "BuildCommand": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Runtime": { + "type": "string" + }, + "RuntimeEnvironmentSecrets": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "type": "array" + }, + "RuntimeEnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "type": "array" + }, + "StartCommand": { + "type": "string" + } + }, + "required": [ + "Runtime" + ], + "type": "object" + }, + "AWS::AppRunner::Service.CodeRepository": { + "additionalProperties": false, + "properties": { + "CodeConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.CodeConfiguration" + }, + "RepositoryUrl": { + "type": "string" + }, + "SourceCodeVersion": { + "$ref": "#/definitions/AWS::AppRunner::Service.SourceCodeVersion" + } + }, + "required": [ + "RepositoryUrl", + "SourceCodeVersion" + ], + "type": "object" + }, + "AWS::AppRunner::Service.EgressConfiguration": { + "additionalProperties": false, + "properties": { + "EgressType": { + "type": "string" + }, + "VpcConnectorArn": { + "type": "string" + } + }, + "required": [ + "EgressType" + ], + "type": "object" + }, + "AWS::AppRunner::Service.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKey": { + "type": "string" + } + }, + "required": [ + "KmsKey" + ], + "type": "object" + }, + "AWS::AppRunner::Service.HealthCheckConfiguration": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "type": "number" + }, + "Interval": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Timeout": { + "type": "number" + }, + "UnhealthyThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.ImageConfiguration": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "string" + }, + "RuntimeEnvironmentSecrets": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "type": "array" + }, + "RuntimeEnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::AppRunner::Service.KeyValuePair" + }, + "type": "array" + }, + "StartCommand": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.ImageRepository": { + "additionalProperties": false, + "properties": { + "ImageConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.ImageConfiguration" + }, + "ImageIdentifier": { + "type": "string" + }, + "ImageRepositoryType": { + "type": "string" + } + }, + "required": [ + "ImageIdentifier", + "ImageRepositoryType" + ], + "type": "object" + }, + "AWS::AppRunner::Service.IngressConfiguration": { + "additionalProperties": false, + "properties": { + "IsPubliclyAccessible": { + "type": "boolean" + } + }, + "required": [ + "IsPubliclyAccessible" + ], + "type": "object" + }, + "AWS::AppRunner::Service.InstanceConfiguration": { + "additionalProperties": false, + "properties": { + "Cpu": { + "type": "string" + }, + "InstanceRoleArn": { + "type": "string" + }, + "Memory": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "EgressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.EgressConfiguration" + }, + "IngressConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.IngressConfiguration" + } + }, + "type": "object" + }, + "AWS::AppRunner::Service.ServiceObservabilityConfiguration": { + "additionalProperties": false, + "properties": { + "ObservabilityConfigurationArn": { + "type": "string" + }, + "ObservabilityEnabled": { + "type": "boolean" + } + }, + "required": [ + "ObservabilityEnabled" + ], + "type": "object" + }, + "AWS::AppRunner::Service.SourceCodeVersion": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::AppRunner::Service.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::Service.AuthenticationConfiguration" + }, + "AutoDeploymentsEnabled": { + "type": "boolean" + }, + "CodeRepository": { + "$ref": "#/definitions/AWS::AppRunner::Service.CodeRepository" + }, + "ImageRepository": { + "$ref": "#/definitions/AWS::AppRunner::Service.ImageRepository" + } + }, + "type": "object" + }, + "AWS::AppRunner::VpcConnector": { + "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": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConnectorName": { + "type": "string" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcConnector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppRunner::VpcIngressConnection": { + "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": { + "IngressVpcConfiguration": { + "$ref": "#/definitions/AWS::AppRunner::VpcIngressConnection.IngressVpcConfiguration" + }, + "ServiceArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcIngressConnectionName": { + "type": "string" + } + }, + "required": [ + "IngressVpcConfiguration", + "ServiceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppRunner::VpcIngressConnection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppRunner::VpcIngressConnection.IngressVpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcEndpointId", + "VpcId" + ], + "type": "object" + }, + "AWS::AppStream::AppBlock": { + "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": { + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SetupScriptDetails": { + "$ref": "#/definitions/AWS::AppStream::AppBlock.ScriptDetails" + }, + "SourceS3Location": { + "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "SetupScriptDetails", + "SourceS3Location" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::AppBlock" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::AppBlock.S3Location": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::AppStream::AppBlock.ScriptDetails": { + "additionalProperties": false, + "properties": { + "ExecutableParameters": { + "type": "string" + }, + "ExecutablePath": { + "type": "string" + }, + "ScriptS3Location": { + "$ref": "#/definitions/AWS::AppStream::AppBlock.S3Location" + }, + "TimeoutInSeconds": { + "type": "number" + } + }, + "required": [ + "ExecutablePath", + "ScriptS3Location", + "TimeoutInSeconds" + ], + "type": "object" + }, + "AWS::AppStream::Application": { + "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": { + "AppBlockArn": { + "type": "string" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "IconS3Location": { + "$ref": "#/definitions/AWS::AppStream::Application.S3Location" + }, + "InstanceFamilies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LaunchParameters": { + "type": "string" + }, + "LaunchPath": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Platforms": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "required": [ + "AppBlockArn", + "IconS3Location", + "InstanceFamilies", + "LaunchPath", + "Name", + "Platforms" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::Application.S3Location": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::AppStream::ApplicationEntitlementAssociation": { + "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": { + "ApplicationIdentifier": { + "type": "string" + }, + "EntitlementName": { + "type": "string" + }, + "StackName": { + "type": "string" + } + }, + "required": [ + "ApplicationIdentifier", + "EntitlementName", + "StackName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::ApplicationEntitlementAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::ApplicationFleetAssociation": { + "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": { + "ApplicationArn": { + "type": "string" + }, + "FleetName": { + "type": "string" + } + }, + "required": [ + "ApplicationArn", + "FleetName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::ApplicationFleetAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::DirectoryConfig": { + "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": { + "CertificateBasedAuthProperties": { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.CertificateBasedAuthProperties" + }, + "DirectoryName": { + "type": "string" + }, + "OrganizationalUnitDistinguishedNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceAccountCredentials": { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig.ServiceAccountCredentials" + } + }, + "required": [ + "DirectoryName", + "OrganizationalUnitDistinguishedNames", + "ServiceAccountCredentials" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::DirectoryConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::DirectoryConfig.CertificateBasedAuthProperties": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArn": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::DirectoryConfig.ServiceAccountCredentials": { + "additionalProperties": false, + "properties": { + "AccountName": { + "type": "string" + }, + "AccountPassword": { + "type": "string" + } + }, + "required": [ + "AccountName", + "AccountPassword" + ], + "type": "object" + }, + "AWS::AppStream::Entitlement": { + "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": { + "AppVisibility": { + "type": "string" + }, + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Entitlement.Attribute" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StackName": { + "type": "string" + } + }, + "required": [ + "AppVisibility", + "Attributes", + "Name", + "StackName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::Entitlement" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::Entitlement.Attribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::AppStream::Fleet": { + "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": { + "ComputeCapacity": { + "$ref": "#/definitions/AWS::AppStream::Fleet.ComputeCapacity" + }, + "Description": { + "type": "string" + }, + "DisconnectTimeoutInSeconds": { + "type": "number" + }, + "DisplayName": { + "type": "string" + }, + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::Fleet.DomainJoinInfo" + }, + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "FleetType": { + "type": "string" + }, + "IamRoleArn": { + "type": "string" + }, + "IdleDisconnectTimeoutInSeconds": { + "type": "number" + }, + "ImageArn": { + "type": "string" + }, + "ImageName": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "MaxConcurrentSessions": { + "type": "number" + }, + "MaxUserDurationInSeconds": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "SessionScriptS3Location": { + "$ref": "#/definitions/AWS::AppStream::Fleet.S3Location" + }, + "StreamView": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UsbDeviceFilterStrings": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::Fleet.VpcConfig" + } + }, + "required": [ + "InstanceType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::Fleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::Fleet.ComputeCapacity": { + "additionalProperties": false, + "properties": { + "DesiredInstances": { + "type": "number" + } + }, + "required": [ + "DesiredInstances" + ], + "type": "object" + }, + "AWS::AppStream::Fleet.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::Fleet.S3Location": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::AppStream::Fleet.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppStream::ImageBuilder": { + "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": { + "AccessEndpoints": { + "items": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.AccessEndpoint" + }, + "type": "array" + }, + "AppstreamAgentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "DomainJoinInfo": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.DomainJoinInfo" + }, + "EnableDefaultInternetAccess": { + "type": "boolean" + }, + "IamRoleArn": { + "type": "string" + }, + "ImageArn": { + "type": "string" + }, + "ImageName": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder.VpcConfig" + } + }, + "required": [ + "InstanceType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::ImageBuilder" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::ImageBuilder.AccessEndpoint": { + "additionalProperties": false, + "properties": { + "EndpointType": { + "type": "string" + }, + "VpceId": { + "type": "string" + } + }, + "required": [ + "EndpointType", + "VpceId" + ], + "type": "object" + }, + "AWS::AppStream::ImageBuilder.DomainJoinInfo": { + "additionalProperties": false, + "properties": { + "DirectoryName": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::ImageBuilder.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppStream::Stack": { + "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": { + "AccessEndpoints": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.AccessEndpoint" + }, + "type": "array" + }, + "ApplicationSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.ApplicationSettings" + }, + "AttributesToDelete": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeleteStorageConnectors": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "EmbedHostDomains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FeedbackURL": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RedirectURL": { + "type": "string" + }, + "StorageConnectors": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.StorageConnector" + }, + "type": "array" + }, + "StreamingExperienceSettings": { + "$ref": "#/definitions/AWS::AppStream::Stack.StreamingExperienceSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserSettings": { + "items": { + "$ref": "#/definitions/AWS::AppStream::Stack.UserSetting" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::Stack" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::AppStream::Stack.AccessEndpoint": { + "additionalProperties": false, + "properties": { + "EndpointType": { + "type": "string" + }, + "VpceId": { + "type": "string" + } + }, + "required": [ + "EndpointType", + "VpceId" + ], + "type": "object" + }, + "AWS::AppStream::Stack.ApplicationSettings": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SettingsGroup": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::AppStream::Stack.StorageConnector": { + "additionalProperties": false, + "properties": { + "ConnectorType": { + "type": "string" + }, + "Domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceIdentifier": { + "type": "string" + } + }, + "required": [ + "ConnectorType" + ], + "type": "object" + }, + "AWS::AppStream::Stack.StreamingExperienceSettings": { + "additionalProperties": false, + "properties": { + "PreferredProtocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppStream::Stack.UserSetting": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Permission": { + "type": "string" + } + }, + "required": [ + "Action", + "Permission" + ], + "type": "object" + }, + "AWS::AppStream::StackFleetAssociation": { + "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": { + "FleetName": { + "type": "string" + }, + "StackName": { + "type": "string" + } + }, + "required": [ + "FleetName", + "StackName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::StackFleetAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::StackUserAssociation": { + "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": { + "AuthenticationType": { + "type": "string" + }, + "SendEmailNotification": { + "type": "boolean" + }, + "StackName": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "AuthenticationType", + "StackName", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::StackUserAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppStream::User": { + "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": { + "AuthenticationType": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + }, + "MessageAction": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "AuthenticationType", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppStream::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::ApiCache": { + "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": { + "ApiCachingBehavior": { + "type": "string" + }, + "ApiId": { + "type": "string" + }, + "AtRestEncryptionEnabled": { + "type": "boolean" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + }, + "Ttl": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ApiCachingBehavior", + "ApiId", + "Ttl", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::ApiCache" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::ApiKey": { + "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": { + "ApiId": { + "type": "string" + }, + "ApiKeyId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Expires": { + "type": "number" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::ApiKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::DataSource": { + "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": { + "ApiId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DynamoDBConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DynamoDBConfig" + }, + "ElasticsearchConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.ElasticsearchConfig" + }, + "EventBridgeConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.EventBridgeConfig" + }, + "HttpConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.HttpConfig" + }, + "LambdaConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.LambdaConfig" + }, + "Name": { + "type": "string" + }, + "OpenSearchServiceConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.OpenSearchServiceConfig" + }, + "RelationalDatabaseConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RelationalDatabaseConfig" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ApiId", + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::DataSource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AuthorizationType": { + "type": "string" + }, + "AwsIamConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AwsIamConfig" + } + }, + "required": [ + "AuthorizationType" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.AwsIamConfig": { + "additionalProperties": false, + "properties": { + "SigningRegion": { + "type": "string" + }, + "SigningServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::DataSource.DeltaSyncConfig": { + "additionalProperties": false, + "properties": { + "BaseTableTTL": { + "type": "string" + }, + "DeltaSyncTableName": { + "type": "string" + }, + "DeltaSyncTableTTL": { + "type": "string" + } + }, + "required": [ + "BaseTableTTL", + "DeltaSyncTableName", + "DeltaSyncTableTTL" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.DynamoDBConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "DeltaSyncConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.DeltaSyncConfig" + }, + "TableName": { + "type": "string" + }, + "UseCallerCredentials": { + "type": "boolean" + }, + "Versioned": { + "type": "boolean" + } + }, + "required": [ + "AwsRegion", + "TableName" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.ElasticsearchConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "required": [ + "AwsRegion", + "Endpoint" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.EventBridgeConfig": { + "additionalProperties": false, + "properties": { + "EventBusArn": { + "type": "string" + } + }, + "required": [ + "EventBusArn" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.HttpConfig": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.AuthorizationConfig" + }, + "Endpoint": { + "type": "string" + } + }, + "required": [ + "Endpoint" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.LambdaConfig": { + "additionalProperties": false, + "properties": { + "LambdaFunctionArn": { + "type": "string" + } + }, + "required": [ + "LambdaFunctionArn" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.OpenSearchServiceConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "required": [ + "AwsRegion", + "Endpoint" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.RdsHttpEndpointConfig": { + "additionalProperties": false, + "properties": { + "AwsRegion": { + "type": "string" + }, + "AwsSecretStoreArn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DbClusterIdentifier": { + "type": "string" + }, + "Schema": { + "type": "string" + } + }, + "required": [ + "AwsRegion", + "AwsSecretStoreArn", + "DbClusterIdentifier" + ], + "type": "object" + }, + "AWS::AppSync::DataSource.RelationalDatabaseConfig": { + "additionalProperties": false, + "properties": { + "RdsHttpEndpointConfig": { + "$ref": "#/definitions/AWS::AppSync::DataSource.RdsHttpEndpointConfig" + }, + "RelationalDatabaseSourceType": { + "type": "string" + } + }, + "required": [ + "RelationalDatabaseSourceType" + ], + "type": "object" + }, + "AWS::AppSync::DomainName": { + "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": { + "CertificateArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DomainName": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::DomainName" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::DomainNameApiAssociation": { + "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": { + "ApiId": { + "type": "string" + }, + "DomainName": { + "type": "string" + } + }, + "required": [ + "ApiId", + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::DomainNameApiAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration": { + "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": { + "ApiId": { + "type": "string" + }, + "Code": { + "type": "string" + }, + "CodeS3Location": { + "type": "string" + }, + "DataSourceName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "MaxBatchSize": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "RequestMappingTemplate": { + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "type": "string" + }, + "ResponseMappingTemplate": { + "type": "string" + }, + "ResponseMappingTemplateS3Location": { + "type": "string" + }, + "Runtime": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.AppSyncRuntime" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.SyncConfig" + } + }, + "required": [ + "ApiId", + "DataSourceName", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::FunctionConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.AppSyncRuntime": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "RuntimeVersion": { + "type": "string" + } + }, + "required": [ + "Name", + "RuntimeVersion" + ], + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig": { + "additionalProperties": false, + "properties": { + "LambdaConflictHandlerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::FunctionConfiguration.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "type": "string" + }, + "ConflictHandler": { + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration.LambdaConflictHandlerConfig" + } + }, + "required": [ + "ConflictDetection" + ], + "type": "object" + }, + "AWS::AppSync::GraphQLApi": { + "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": { + "AdditionalAuthenticationProviders": { + "items": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider" + }, + "type": "array" + }, + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, + "LogConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LogConfig" + }, + "Name": { + "type": "string" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.UserPoolConfig" + }, + "XrayEnabled": { + "type": "boolean" + } + }, + "required": [ + "AuthenticationType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::GraphQLApi" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::GraphQLApi.AdditionalAuthenticationProvider": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "LambdaAuthorizerConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig" + }, + "OpenIDConnectConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.OpenIDConnectConfig" + }, + "UserPoolConfig": { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi.CognitoUserPoolConfig" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "AWS::AppSync::GraphQLApi.CognitoUserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.LambdaAuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AuthorizerResultTtlInSeconds": { + "type": "number" + }, + "AuthorizerUri": { + "type": "string" + }, + "IdentityValidationExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.LogConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "ExcludeVerboseContent": { + "type": "boolean" + }, + "FieldLogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.OpenIDConnectConfig": { + "additionalProperties": false, + "properties": { + "AuthTTL": { + "type": "number" + }, + "ClientId": { + "type": "string" + }, + "IatTTL": { + "type": "number" + }, + "Issuer": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLApi.UserPoolConfig": { + "additionalProperties": false, + "properties": { + "AppIdClientRegex": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "DefaultAction": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::GraphQLSchema": { + "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": { + "ApiId": { + "type": "string" + }, + "Definition": { + "type": "string" + }, + "DefinitionS3Location": { + "type": "string" + } + }, + "required": [ + "ApiId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::GraphQLSchema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::Resolver": { + "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": { + "ApiId": { + "type": "string" + }, + "CachingConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.CachingConfig" + }, + "Code": { + "type": "string" + }, + "CodeS3Location": { + "type": "string" + }, + "DataSourceName": { + "type": "string" + }, + "FieldName": { + "type": "string" + }, + "Kind": { + "type": "string" + }, + "MaxBatchSize": { + "type": "number" + }, + "PipelineConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.PipelineConfig" + }, + "RequestMappingTemplate": { + "type": "string" + }, + "RequestMappingTemplateS3Location": { + "type": "string" + }, + "ResponseMappingTemplate": { + "type": "string" + }, + "ResponseMappingTemplateS3Location": { + "type": "string" + }, + "Runtime": { + "$ref": "#/definitions/AWS::AppSync::Resolver.AppSyncRuntime" + }, + "SyncConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.SyncConfig" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "ApiId", + "FieldName", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AppSync::Resolver" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AppSync::Resolver.AppSyncRuntime": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "RuntimeVersion": { + "type": "string" + } + }, + "required": [ + "Name", + "RuntimeVersion" + ], + "type": "object" + }, + "AWS::AppSync::Resolver.CachingConfig": { + "additionalProperties": false, + "properties": { + "CachingKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Ttl": { + "type": "number" + } + }, + "required": [ + "Ttl" + ], + "type": "object" + }, + "AWS::AppSync::Resolver.LambdaConflictHandlerConfig": { + "additionalProperties": false, + "properties": { + "LambdaConflictHandlerArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AppSync::Resolver.PipelineConfig": { + "additionalProperties": false, + "properties": { + "Functions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AppSync::Resolver.SyncConfig": { + "additionalProperties": false, + "properties": { + "ConflictDetection": { + "type": "string" + }, + "ConflictHandler": { + "type": "string" + }, + "LambdaConflictHandlerConfig": { + "$ref": "#/definitions/AWS::AppSync::Resolver.LambdaConflictHandlerConfig" + } + }, + "required": [ + "ConflictDetection" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget": { + "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": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "ResourceId": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScheduledActions": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction" + }, + "type": "array" + }, + "ServiceNamespace": { + "type": "string" + }, + "SuspendedState": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "RoleARN", + "ScalableDimension", + "ServiceNamespace" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApplicationAutoScaling::ScalableTarget" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.ScheduledAction": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "ScalableTargetAction": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget.ScalableTargetAction" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "Timezone": { + "type": "string" + } + }, + "required": [ + "Schedule", + "ScheduledActionName" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalableTarget.SuspendedState": { + "additionalProperties": false, + "properties": { + "DynamicScalingInSuspended": { + "type": "boolean" + }, + "DynamicScalingOutSuspended": { + "type": "boolean" + }, + "ScheduledScalingSuspended": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy": { + "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": { + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingTargetId": { + "type": "string" + }, + "ServiceNamespace": { + "type": "string" + }, + "StepScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "PolicyName", + "PolicyType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApplicationAutoScaling::ScalingPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.StepScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "Cooldown": { + "type": "number" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationAutoScaling::ScalingPolicy.TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy.PredefinedMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application": { + "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": { + "AutoConfigurationEnabled": { + "type": "boolean" + }, + "CWEMonitorEnabled": { + "type": "boolean" + }, + "ComponentMonitoringSettings": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentMonitoringSetting" + }, + "type": "array" + }, + "CustomComponents": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.CustomComponent" + }, + "type": "array" + }, + "GroupingType": { + "type": "string" + }, + "LogPatternSets": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPatternSet" + }, + "type": "array" + }, + "OpsCenterEnabled": { + "type": "boolean" + }, + "OpsItemSNSTopicArn": { + "type": "string" + }, + "ResourceGroupName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ApplicationInsights::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.Alarm": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "Severity": { + "type": "string" + } + }, + "required": [ + "AlarmName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.AlarmMetric": { + "additionalProperties": false, + "properties": { + "AlarmMetricName": { + "type": "string" + } + }, + "required": [ + "AlarmMetricName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.ComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationDetails": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ConfigurationDetails" + }, + "SubComponentTypeConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentTypeConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.ComponentMonitoringSetting": { + "additionalProperties": false, + "properties": { + "ComponentARN": { + "type": "string" + }, + "ComponentConfigurationMode": { + "type": "string" + }, + "ComponentName": { + "type": "string" + }, + "CustomComponentConfiguration": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration" + }, + "DefaultOverwriteComponentConfiguration": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.ComponentConfiguration" + }, + "Tier": { + "type": "string" + } + }, + "required": [ + "ComponentConfigurationMode", + "Tier" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.ConfigurationDetails": { + "additionalProperties": false, + "properties": { + "AlarmMetrics": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric" + }, + "type": "array" + }, + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.Alarm" + }, + "type": "array" + }, + "HAClusterPrometheusExporter": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.HAClusterPrometheusExporter" + }, + "HANAPrometheusExporter": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.HANAPrometheusExporter" + }, + "JMXPrometheusExporter": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.JMXPrometheusExporter" + }, + "Logs": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log" + }, + "type": "array" + }, + "WindowsEvents": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.CustomComponent": { + "additionalProperties": false, + "properties": { + "ComponentName": { + "type": "string" + }, + "ResourceList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ComponentName", + "ResourceList" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.HAClusterPrometheusExporter": { + "additionalProperties": false, + "properties": { + "PrometheusPort": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.HANAPrometheusExporter": { + "additionalProperties": false, + "properties": { + "AgreeToInstallHANADBClient": { + "type": "boolean" + }, + "HANAPort": { + "type": "string" + }, + "HANASID": { + "type": "string" + }, + "HANASecretName": { + "type": "string" + }, + "PrometheusPort": { + "type": "string" + } + }, + "required": [ + "AgreeToInstallHANADBClient", + "HANAPort", + "HANASID", + "HANASecretName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.JMXPrometheusExporter": { + "additionalProperties": false, + "properties": { + "HostPort": { + "type": "string" + }, + "JMXURL": { + "type": "string" + }, + "PrometheusPort": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.Log": { + "additionalProperties": false, + "properties": { + "Encoding": { + "type": "string" + }, + "LogGroupName": { + "type": "string" + }, + "LogPath": { + "type": "string" + }, + "LogType": { + "type": "string" + }, + "PatternSet": { + "type": "string" + } + }, + "required": [ + "LogType" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.LogPattern": { + "additionalProperties": false, + "properties": { + "Pattern": { + "type": "string" + }, + "PatternName": { + "type": "string" + }, + "Rank": { + "type": "number" + } + }, + "required": [ + "Pattern", + "PatternName", + "Rank" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.LogPatternSet": { + "additionalProperties": false, + "properties": { + "LogPatterns": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.LogPattern" + }, + "type": "array" + }, + "PatternSetName": { + "type": "string" + } + }, + "required": [ + "LogPatterns", + "PatternSetName" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.SubComponentConfigurationDetails": { + "additionalProperties": false, + "properties": { + "AlarmMetrics": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.AlarmMetric" + }, + "type": "array" + }, + "Logs": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.Log" + }, + "type": "array" + }, + "WindowsEvents": { + "items": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.WindowsEvent" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ApplicationInsights::Application.SubComponentTypeConfiguration": { + "additionalProperties": false, + "properties": { + "SubComponentConfigurationDetails": { + "$ref": "#/definitions/AWS::ApplicationInsights::Application.SubComponentConfigurationDetails" + }, + "SubComponentType": { + "type": "string" + } + }, + "required": [ + "SubComponentConfigurationDetails", + "SubComponentType" + ], + "type": "object" + }, + "AWS::ApplicationInsights::Application.WindowsEvent": { + "additionalProperties": false, + "properties": { + "EventLevels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EventName": { + "type": "string" + }, + "LogGroupName": { + "type": "string" + }, + "PatternSet": { + "type": "string" + } + }, + "required": [ + "EventLevels", + "EventName", + "LogGroupName" + ], + "type": "object" + }, + "AWS::Athena::DataCatalog": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Athena::DataCatalog" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Athena::NamedQuery": { + "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": { + "Database": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "WorkGroup": { + "type": "string" + } + }, + "required": [ + "Database", + "QueryString" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Athena::NamedQuery" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Athena::PreparedStatement": { + "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": { + "Description": { + "type": "string" + }, + "QueryStatement": { + "type": "string" + }, + "StatementName": { + "type": "string" + }, + "WorkGroup": { + "type": "string" + } + }, + "required": [ + "QueryStatement", + "StatementName", + "WorkGroup" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Athena::PreparedStatement" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Athena::WorkGroup": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecursiveDeleteOption": { + "type": "boolean" + }, + "State": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkGroupConfiguration": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.WorkGroupConfiguration" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Athena::WorkGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Athena::WorkGroup.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionOption": { + "type": "string" + }, + "KmsKey": { + "type": "string" + } + }, + "required": [ + "EncryptionOption" + ], + "type": "object" + }, + "AWS::Athena::WorkGroup.EngineVersion": { + "additionalProperties": false, + "properties": { + "EffectiveEngineVersion": { + "type": "string" + }, + "SelectedEngineVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Athena::WorkGroup.ResultConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EncryptionConfiguration" + }, + "OutputLocation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Athena::WorkGroup.WorkGroupConfiguration": { + "additionalProperties": false, + "properties": { + "BytesScannedCutoffPerQuery": { + "type": "number" + }, + "EnforceWorkGroupConfiguration": { + "type": "boolean" + }, + "EngineVersion": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.EngineVersion" + }, + "PublishCloudWatchMetricsEnabled": { + "type": "boolean" + }, + "RequesterPaysEnabled": { + "type": "boolean" + }, + "ResultConfiguration": { + "$ref": "#/definitions/AWS::Athena::WorkGroup.ResultConfiguration" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment": { + "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": { + "AssessmentReportsDestination": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.AssessmentReportsDestination" + }, + "AwsAccount": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount" + }, + "Delegations": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.Delegation" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "FrameworkId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Roles": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.Role" + }, + "type": "array" + }, + "Scope": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.Scope" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AuditManager::Assessment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::AuditManager::Assessment.AWSAccount": { + "additionalProperties": false, + "properties": { + "EmailAddress": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.AWSService": { + "additionalProperties": false, + "properties": { + "ServiceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.AssessmentReportsDestination": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "DestinationType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.Delegation": { + "additionalProperties": false, + "properties": { + "AssessmentId": { + "type": "string" + }, + "AssessmentName": { + "type": "string" + }, + "Comment": { + "type": "string" + }, + "ControlSetId": { + "type": "string" + }, + "CreatedBy": { + "type": "string" + }, + "CreationTime": { + "type": "number" + }, + "Id": { + "type": "string" + }, + "LastUpdated": { + "type": "number" + }, + "RoleArn": { + "type": "string" + }, + "RoleType": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.Role": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "RoleType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AuditManager::Assessment.Scope": { + "additionalProperties": false, + "properties": { + "AwsAccounts": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSAccount" + }, + "type": "array" + }, + "AwsServices": { + "items": { + "$ref": "#/definitions/AWS::AuditManager::Assessment.AWSService" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "CreationPolicy": { + "type": "object" + }, + "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": { + "AutoScalingGroupName": { + "type": "string" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CapacityRebalance": { + "type": "boolean" + }, + "Context": { + "type": "string" + }, + "Cooldown": { + "type": "string" + }, + "DefaultInstanceWarmup": { + "type": "number" + }, + "DesiredCapacity": { + "type": "string" + }, + "DesiredCapacityType": { + "type": "string" + }, + "HealthCheckGracePeriod": { + "type": "number" + }, + "HealthCheckType": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "LifecycleHookSpecificationList": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification" + }, + "type": "array" + }, + "LoadBalancerNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxInstanceLifetime": { + "type": "number" + }, + "MaxSize": { + "type": "string" + }, + "MetricsCollection": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MetricsCollection" + }, + "type": "array" + }, + "MinSize": { + "type": "string" + }, + "MixedInstancesPolicy": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy" + }, + "NewInstancesProtectedFromScaleIn": { + "type": "boolean" + }, + "NotificationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration" + }, + "type": "array" + }, + "PlacementGroup": { + "type": "string" + }, + "ServiceLinkedRoleARN": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TagProperty" + }, + "type": "array" + }, + "TargetGroupARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TerminationPolicies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VPCZoneIdentifier": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "MaxSize", + "MinSize" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::AutoScalingGroup" + ], + "type": "string" + }, + "UpdatePolicy": { + "type": "object" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.InstancesDistribution": { + "additionalProperties": false, + "properties": { + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandBaseCapacity": { + "type": "number" + }, + "OnDemandPercentageAboveBaseCapacity": { + "type": "number" + }, + "SpotAllocationStrategy": { + "type": "string" + }, + "SpotInstancePools": { + "type": "number" + }, + "SpotMaxPrice": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplate": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides" + }, + "type": "array" + } + }, + "required": [ + "LaunchTemplateSpecification" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "InstanceRequirements": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstanceRequirements" + }, + "InstanceType": { + "type": "string" + }, + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification" + }, + "WeightedCapacity": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.LifecycleHookSpecification": { + "additionalProperties": false, + "properties": { + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "number" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "LifecycleHookName", + "LifecycleTransition" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MetricsCollection": { + "additionalProperties": false, + "properties": { + "Granularity": { + "type": "string" + }, + "Metrics": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Granularity" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.MixedInstancesPolicy": { + "additionalProperties": false, + "properties": { + "InstancesDistribution": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.InstancesDistribution" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup.LaunchTemplate" + } + }, + "required": [ + "LaunchTemplate" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TopicARN": { + "type": "string" + } + }, + "required": [ + "TopicARN" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.TagProperty": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "PropagateAtLaunch": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "PropagateAtLaunch", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::AutoScalingGroup.VCpuCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration": { + "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": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping" + }, + "type": "array" + }, + "ClassicLinkVPCId": { + "type": "string" + }, + "ClassicLinkVPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "InstanceMonitoring": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchConfigurationName": { + "type": "string" + }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.MetadataOptions" + }, + "PlacementTenancy": { + "type": "string" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "UserData": { + "type": "string" + } + }, + "required": [ + "ImageId", + "InstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::LaunchConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.BlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Throughput": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration.BlockDevice" + }, + "NoDevice": { + "type": "boolean" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::AutoScaling::LaunchConfiguration.MetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::AutoScaling::LifecycleHook": { + "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": { + "AutoScalingGroupName": { + "type": "string" + }, + "DefaultResult": { + "type": "string" + }, + "HeartbeatTimeout": { + "type": "number" + }, + "LifecycleHookName": { + "type": "string" + }, + "LifecycleTransition": { + "type": "string" + }, + "NotificationMetadata": { + "type": "string" + }, + "NotificationTargetARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupName", + "LifecycleTransition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::LifecycleHook" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy": { + "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": { + "AdjustmentType": { + "type": "string" + }, + "AutoScalingGroupName": { + "type": "string" + }, + "Cooldown": { + "type": "string" + }, + "EstimatedInstanceWarmup": { + "type": "number" + }, + "MetricAggregationType": { + "type": "string" + }, + "MinAdjustmentMagnitude": { + "type": "number" + }, + "PolicyType": { + "type": "string" + }, + "PredictiveScalingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration" + }, + "ScalingAdjustment": { + "type": "number" + }, + "StepAdjustments": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.StepAdjustment" + }, + "type": "array" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration" + } + }, + "required": [ + "AutoScalingGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::ScalingPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricStat" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.Metric" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Metric", + "Stat" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacityBreachBehavior": { + "type": "string" + }, + "MaxCapacityBuffer": { + "type": "number" + }, + "MetricSpecifications": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification" + }, + "type": "array" + }, + "Mode": { + "type": "string" + }, + "SchedulingBufferTime": { + "type": "number" + } + }, + "required": [ + "MetricSpecifications" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" + }, + "type": "array" + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" + }, + "type": "array" + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.MetricDataQuery" + }, + "type": "array" + } + }, + "required": [ + "MetricDataQueries" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "CustomizedCapacityMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedCapacityMetric" + }, + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedLoadMetric" + }, + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingCustomizedScalingMetric" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric" + }, + "PredefinedMetricPairSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedLoadMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedMetricPair": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.PredictiveScalingPredefinedScalingMetric": { + "additionalProperties": false, + "properties": { + "PredefinedMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedMetricType" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.StepAdjustment": { + "additionalProperties": false, + "properties": { + "MetricIntervalLowerBound": { + "type": "number" + }, + "MetricIntervalUpperBound": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::AutoScaling::ScalingPolicy.TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.CustomizedMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "PredefinedMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy.PredefinedMetricSpecification" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::AutoScaling::ScheduledAction": { + "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": { + "AutoScalingGroupName": { + "type": "string" + }, + "DesiredCapacity": { + "type": "number" + }, + "EndTime": { + "type": "string" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + }, + "Recurrence": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::ScheduledAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AutoScaling::WarmPool": { + "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": { + "AutoScalingGroupName": { + "type": "string" + }, + "InstanceReusePolicy": { + "$ref": "#/definitions/AWS::AutoScaling::WarmPool.InstanceReusePolicy" + }, + "MaxGroupPreparedCapacity": { + "type": "number" + }, + "MinSize": { + "type": "number" + }, + "PoolState": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScaling::WarmPool" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AutoScaling::WarmPool.InstanceReusePolicy": { + "additionalProperties": false, + "properties": { + "ReuseOnScaleIn": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan": { + "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": { + "ApplicationSource": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ApplicationSource" + }, + "ScalingInstructions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction" + }, + "type": "array" + } + }, + "required": [ + "ApplicationSource", + "ScalingInstructions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::AutoScalingPlans::ScalingPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.ApplicationSource": { + "additionalProperties": false, + "properties": { + "CloudFormationStackARN": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.MetricDimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Statistic": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.MetricDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedLoadMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedLoadMetricType" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification": { + "additionalProperties": false, + "properties": { + "PredefinedScalingMetricType": { + "type": "string" + }, + "ResourceLabel": { + "type": "string" + } + }, + "required": [ + "PredefinedScalingMetricType" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.ScalingInstruction": { + "additionalProperties": false, + "properties": { + "CustomizedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedLoadMetricSpecification" + }, + "DisableDynamicScaling": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "PredefinedLoadMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedLoadMetricSpecification" + }, + "PredictiveScalingMaxCapacityBehavior": { + "type": "string" + }, + "PredictiveScalingMaxCapacityBuffer": { + "type": "number" + }, + "PredictiveScalingMode": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ScalableDimension": { + "type": "string" + }, + "ScalingPolicyUpdateBehavior": { + "type": "string" + }, + "ScheduledActionBufferTime": { + "type": "number" + }, + "ServiceNamespace": { + "type": "string" + }, + "TargetTrackingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration" + }, + "type": "array" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "ResourceId", + "ScalableDimension", + "ServiceNamespace", + "TargetTrackingConfigurations" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::AutoScalingPlans::ScalingPlan.TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "CustomizedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.CustomizedScalingMetricSpecification" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "EstimatedInstanceWarmup": { + "type": "number" + }, + "PredefinedScalingMetricSpecification": { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan.PredefinedScalingMetricSpecification" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan": { + "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": { + "BackupPlan": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupPlanResourceType" + }, + "BackupPlanTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "BackupPlan" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::BackupPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType": { + "additionalProperties": false, + "properties": { + "BackupOptions": { + "type": "object" + }, + "ResourceType": { + "type": "string" + } + }, + "required": [ + "BackupOptions", + "ResourceType" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.BackupPlanResourceType": { + "additionalProperties": false, + "properties": { + "AdvancedBackupSettings": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.AdvancedBackupSettingResourceType" + }, + "type": "array" + }, + "BackupPlanName": { + "type": "string" + }, + "BackupPlanRule": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.BackupRuleResourceType" + }, + "type": "array" + } + }, + "required": [ + "BackupPlanName", + "BackupPlanRule" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.BackupRuleResourceType": { + "additionalProperties": false, + "properties": { + "CompletionWindowMinutes": { + "type": "number" + }, + "CopyActions": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.CopyActionResourceType" + }, + "type": "array" + }, + "EnableContinuousBackup": { + "type": "boolean" + }, + "Lifecycle": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType" + }, + "RecoveryPointTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "RuleName": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + }, + "StartWindowMinutes": { + "type": "number" + }, + "TargetBackupVault": { + "type": "string" + } + }, + "required": [ + "RuleName", + "TargetBackupVault" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.CopyActionResourceType": { + "additionalProperties": false, + "properties": { + "DestinationBackupVaultArn": { + "type": "string" + }, + "Lifecycle": { + "$ref": "#/definitions/AWS::Backup::BackupPlan.LifecycleResourceType" + } + }, + "required": [ + "DestinationBackupVaultArn" + ], + "type": "object" + }, + "AWS::Backup::BackupPlan.LifecycleResourceType": { + "additionalProperties": false, + "properties": { + "DeleteAfterDays": { + "type": "number" + }, + "MoveToColdStorageAfterDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Backup::BackupSelection": { + "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": { + "BackupPlanId": { + "type": "string" + }, + "BackupSelection": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.BackupSelectionResourceType" + } + }, + "required": [ + "BackupPlanId", + "BackupSelection" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::BackupSelection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Backup::BackupSelection.BackupSelectionResourceType": { + "additionalProperties": false, + "properties": { + "Conditions": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.Conditions" + }, + "IamRoleArn": { + "type": "string" + }, + "ListOfTags": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionResourceType" + }, + "type": "array" + }, + "NotResources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SelectionName": { + "type": "string" + } + }, + "required": [ + "IamRoleArn", + "SelectionName" + ], + "type": "object" + }, + "AWS::Backup::BackupSelection.ConditionParameter": { + "additionalProperties": false, + "properties": { + "ConditionKey": { + "type": "string" + }, + "ConditionValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Backup::BackupSelection.ConditionResourceType": { + "additionalProperties": false, + "properties": { + "ConditionKey": { + "type": "string" + }, + "ConditionType": { + "type": "string" + }, + "ConditionValue": { + "type": "string" + } + }, + "required": [ + "ConditionKey", + "ConditionType", + "ConditionValue" + ], + "type": "object" + }, + "AWS::Backup::BackupSelection.Conditions": { + "additionalProperties": false, + "properties": { + "StringEquals": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter" + }, + "type": "array" + }, + "StringLike": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter" + }, + "type": "array" + }, + "StringNotEquals": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter" + }, + "type": "array" + }, + "StringNotLike": { + "items": { + "$ref": "#/definitions/AWS::Backup::BackupSelection.ConditionParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Backup::BackupVault": { + "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": { + "AccessPolicy": { + "type": "object" + }, + "BackupVaultName": { + "type": "string" + }, + "BackupVaultTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "EncryptionKeyArn": { + "type": "string" + }, + "LockConfiguration": { + "$ref": "#/definitions/AWS::Backup::BackupVault.LockConfigurationType" + }, + "Notifications": { + "$ref": "#/definitions/AWS::Backup::BackupVault.NotificationObjectType" + } + }, + "required": [ + "BackupVaultName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::BackupVault" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Backup::BackupVault.LockConfigurationType": { + "additionalProperties": false, + "properties": { + "ChangeableForDays": { + "type": "number" + }, + "MaxRetentionDays": { + "type": "number" + }, + "MinRetentionDays": { + "type": "number" + } + }, + "required": [ + "MinRetentionDays" + ], + "type": "object" + }, + "AWS::Backup::BackupVault.NotificationObjectType": { + "additionalProperties": false, + "properties": { + "BackupVaultEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SNSTopicArn": { + "type": "string" + } + }, + "required": [ + "BackupVaultEvents", + "SNSTopicArn" + ], + "type": "object" + }, + "AWS::Backup::Framework": { + "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": { + "FrameworkControls": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.FrameworkControl" + }, + "type": "array" + }, + "FrameworkDescription": { + "type": "string" + }, + "FrameworkName": { + "type": "string" + }, + "FrameworkTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FrameworkControls" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::Framework" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Backup::Framework.ControlInputParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterName", + "ParameterValue" + ], + "type": "object" + }, + "AWS::Backup::Framework.ControlScope": { + "additionalProperties": false, + "properties": { + "ComplianceResourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Backup::Framework.FrameworkControl": { + "additionalProperties": false, + "properties": { + "ControlInputParameters": { + "items": { + "$ref": "#/definitions/AWS::Backup::Framework.ControlInputParameter" + }, + "type": "array" + }, + "ControlName": { + "type": "string" + }, + "ControlScope": { + "$ref": "#/definitions/AWS::Backup::Framework.ControlScope" + } + }, + "required": [ + "ControlName" + ], + "type": "object" + }, + "AWS::Backup::ReportPlan": { + "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": { + "ReportDeliveryChannel": { + "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportDeliveryChannel" + }, + "ReportPlanDescription": { + "type": "string" + }, + "ReportPlanName": { + "type": "string" + }, + "ReportPlanTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ReportSetting": { + "$ref": "#/definitions/AWS::Backup::ReportPlan.ReportSetting" + } + }, + "required": [ + "ReportDeliveryChannel", + "ReportSetting" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Backup::ReportPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Backup::ReportPlan.ReportDeliveryChannel": { + "additionalProperties": false, + "properties": { + "Formats": { + "items": { + "type": "string" + }, + "type": "array" + }, + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3BucketName" + ], + "type": "object" + }, + "AWS::Backup::ReportPlan.ReportSetting": { + "additionalProperties": false, + "properties": { + "Accounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FrameworkArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationUnits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ReportTemplate": { + "type": "string" + } + }, + "required": [ + "ReportTemplate" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment": { + "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": { + "ComputeEnvironmentName": { + "type": "string" + }, + "ComputeResources": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.ComputeResources" + }, + "EksConfiguration": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.EksConfiguration" + }, + "ReplaceComputeEnvironment": { + "type": "boolean" + }, + "ServiceRole": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UnmanagedvCpus": { + "type": "number" + }, + "UpdatePolicy": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.UpdatePolicy" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::ComputeEnvironment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.ComputeResources": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BidPercentage": { + "type": "number" + }, + "DesiredvCpus": { + "type": "number" + }, + "Ec2Configuration": { + "items": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject" + }, + "type": "array" + }, + "Ec2KeyPair": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification" + }, + "MaxvCpus": { + "type": "number" + }, + "MinvCpus": { + "type": "number" + }, + "PlacementGroup": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpotIamFleetRole": { + "type": "string" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + }, + "UpdateToLatestImageVersion": { + "type": "boolean" + } + }, + "required": [ + "MaxvCpus", + "Subnets", + "Type" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.Ec2ConfigurationObject": { + "additionalProperties": false, + "properties": { + "ImageIdOverride": { + "type": "string" + }, + "ImageKubernetesVersion": { + "type": "string" + }, + "ImageType": { + "type": "string" + } + }, + "required": [ + "ImageType" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.EksConfiguration": { + "additionalProperties": false, + "properties": { + "EksClusterArn": { + "type": "string" + }, + "KubernetesNamespace": { + "type": "string" + } + }, + "required": [ + "EksClusterArn", + "KubernetesNamespace" + ], + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::ComputeEnvironment.UpdatePolicy": { + "additionalProperties": false, + "properties": { + "JobExecutionTimeoutMinutes": { + "type": "number" + }, + "TerminateJobsOnUpdate": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition": { + "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": { + "ContainerProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "EksProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksProperties" + }, + "JobDefinitionName": { + "type": "string" + }, + "NodeProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeProperties" + }, + "Parameters": { + "type": "object" + }, + "PlatformCapabilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PropagateTags": { + "type": "boolean" + }, + "RetryStrategy": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.RetryStrategy" + }, + "SchedulingPriority": { + "type": "number" + }, + "Tags": { + "type": "object" + }, + "Timeout": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Timeout" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::JobDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "Iam": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.ContainerProperties": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Environment" + }, + "type": "array" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FargatePlatformConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.FargatePlatformConfiguration" + }, + "Image": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobRoleArn": { + "type": "string" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.LogConfiguration" + }, + "Memory": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.MountPoints" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NetworkConfiguration" + }, + "Privileged": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ResourceRequirement" + }, + "type": "array" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" + }, + "type": "array" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Ulimit" + }, + "type": "array" + }, + "User": { + "type": "string" + }, + "Vcpus": { + "type": "number" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Volumes" + }, + "type": "array" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EfsVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.AuthorizationConfig" + }, + "FileSystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "number" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EksContainer": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Env": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerEnvironmentVariable" + }, + "type": "array" + }, + "Image": { + "type": "string" + }, + "ImagePullPolicy": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Resources": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Resources" + }, + "SecurityContext": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.SecurityContext" + }, + "VolumeMounts": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainerVolumeMount" + }, + "type": "array" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EksContainerEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EksContainerVolumeMount": { + "additionalProperties": false, + "properties": { + "MountPath": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EksProperties": { + "additionalProperties": false, + "properties": { + "PodProperties": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.PodProperties" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EksVolume": { + "additionalProperties": false, + "properties": { + "EmptyDir": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EmptyDir" + }, + "HostPath": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.HostPath" + }, + "Name": { + "type": "string" + }, + "Secret": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.EmptyDir": { + "additionalProperties": false, + "properties": { + "Medium": { + "type": "string" + }, + "SizeLimit": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Environment": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.EvaluateOnExit": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "OnExitCode": { + "type": "string" + }, + "OnReason": { + "type": "string" + }, + "OnStatusReason": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.FargatePlatformConfiguration": { + "additionalProperties": false, + "properties": { + "PlatformVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.HostPath": { + "additionalProperties": false, + "properties": { + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Device" + }, + "type": "array" + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "number" + }, + "SharedMemorySize": { + "type": "number" + }, + "Swappiness": { + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Tmpfs" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "type": "object" + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.Secret" + }, + "type": "array" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.MountPoints": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeProperties": { + "additionalProperties": false, + "properties": { + "MainNode": { + "type": "number" + }, + "NodeRangeProperties": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.NodeRangeProperty" + }, + "type": "array" + }, + "NumNodes": { + "type": "number" + } + }, + "required": [ + "MainNode", + "NodeRangeProperties", + "NumNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.NodeRangeProperty": { + "additionalProperties": false, + "properties": { + "Container": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.ContainerProperties" + }, + "TargetNodes": { + "type": "string" + } + }, + "required": [ + "TargetNodes" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.PodProperties": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksContainer" + }, + "type": "array" + }, + "DnsPolicy": { + "type": "string" + }, + "HostNetwork": { + "type": "boolean" + }, + "ServiceAccountName": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EksVolume" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.ResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Resources": { + "additionalProperties": false, + "properties": { + "Limits": { + "type": "object" + }, + "Requests": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.RetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "number" + }, + "EvaluateOnExit": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EvaluateOnExit" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.SecurityContext": { + "additionalProperties": false, + "properties": { + "Privileged": { + "type": "boolean" + }, + "ReadOnlyRootFilesystem": { + "type": "boolean" + }, + "RunAsGroup": { + "type": "number" + }, + "RunAsNonRoot": { + "type": "boolean" + }, + "RunAsUser": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Timeout": { + "additionalProperties": false, + "properties": { + "AttemptDurationSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Size": { + "type": "number" + } + }, + "required": [ + "ContainerPath", + "Size" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::Batch::JobDefinition.Volumes": { + "additionalProperties": false, + "properties": { + "EfsVolumeConfiguration": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.EfsVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::Batch::JobDefinition.VolumesHost" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobDefinition.VolumesHost": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Batch::JobQueue": { + "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": { + "ComputeEnvironmentOrder": { + "items": { + "$ref": "#/definitions/AWS::Batch::JobQueue.ComputeEnvironmentOrder" + }, + "type": "array" + }, + "JobQueueName": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "SchedulingPolicyArn": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ComputeEnvironmentOrder", + "Priority" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::JobQueue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Batch::JobQueue.ComputeEnvironmentOrder": { + "additionalProperties": false, + "properties": { + "ComputeEnvironment": { + "type": "string" + }, + "Order": { + "type": "number" + } + }, + "required": [ + "ComputeEnvironment", + "Order" + ], + "type": "object" + }, + "AWS::Batch::SchedulingPolicy": { + "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": { + "FairsharePolicy": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.FairsharePolicy" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Batch::SchedulingPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.FairsharePolicy": { + "additionalProperties": false, + "properties": { + "ComputeReservation": { + "type": "number" + }, + "ShareDecaySeconds": { + "type": "number" + }, + "ShareDistribution": { + "items": { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy.ShareAttributes" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Batch::SchedulingPolicy.ShareAttributes": { + "additionalProperties": false, + "properties": { + "ShareIdentifier": { + "type": "string" + }, + "WeightFactor": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::BillingConductor::BillingGroup": { + "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": { + "AccountGrouping": { + "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.AccountGrouping" + }, + "ComputationPreference": { + "$ref": "#/definitions/AWS::BillingConductor::BillingGroup.ComputationPreference" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PrimaryAccountId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AccountGrouping", + "ComputationPreference", + "Name", + "PrimaryAccountId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::BillingConductor::BillingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::BillingConductor::BillingGroup.AccountGrouping": { + "additionalProperties": false, + "properties": { + "LinkedAccountIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "LinkedAccountIds" + ], + "type": "object" + }, + "AWS::BillingConductor::BillingGroup.ComputationPreference": { + "additionalProperties": false, + "properties": { + "PricingPlanArn": { + "type": "string" + } + }, + "required": [ + "PricingPlanArn" + ], + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem": { + "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": { + "BillingGroupArn": { + "type": "string" + }, + "BillingPeriodRange": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.BillingPeriodRange" + }, + "CustomLineItemChargeDetails": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BillingGroupArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::BillingConductor::CustomLineItem" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem.BillingPeriodRange": { + "additionalProperties": false, + "properties": { + "ExclusiveEndBillingPeriod": { + "type": "string" + }, + "InclusiveStartBillingPeriod": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem.CustomLineItemChargeDetails": { + "additionalProperties": false, + "properties": { + "Flat": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails" + }, + "Percentage": { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem.CustomLineItemFlatChargeDetails": { + "additionalProperties": false, + "properties": { + "ChargeValue": { + "type": "number" + } + }, + "required": [ + "ChargeValue" + ], + "type": "object" + }, + "AWS::BillingConductor::CustomLineItem.CustomLineItemPercentageChargeDetails": { + "additionalProperties": false, + "properties": { + "ChildAssociatedResources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PercentageValue": { + "type": "number" + } + }, + "required": [ + "PercentageValue" + ], + "type": "object" + }, + "AWS::BillingConductor::PricingPlan": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PricingRuleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::BillingConductor::PricingPlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::BillingConductor::PricingRule": { + "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": { + "BillingEntity": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ModifierPercentage": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "Service": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Tiering": { + "$ref": "#/definitions/AWS::BillingConductor::PricingRule.Tiering" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Scope", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::BillingConductor::PricingRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::BillingConductor::PricingRule.FreeTier": { + "additionalProperties": false, + "properties": { + "Activated": { + "type": "boolean" + } + }, + "required": [ + "Activated" + ], + "type": "object" + }, + "AWS::BillingConductor::PricingRule.Tiering": { + "additionalProperties": false, + "properties": { + "FreeTier": { + "$ref": "#/definitions/AWS::BillingConductor::PricingRule.FreeTier" + } + }, + "type": "object" + }, + "AWS::Budgets::Budget": { + "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": { + "Budget": { + "$ref": "#/definitions/AWS::Budgets::Budget.BudgetData" + }, + "NotificationsWithSubscribers": { + "items": { + "$ref": "#/definitions/AWS::Budgets::Budget.NotificationWithSubscribers" + }, + "type": "array" + } + }, + "required": [ + "Budget" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Budgets::Budget" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Budgets::Budget.AutoAdjustData": { + "additionalProperties": false, + "properties": { + "AutoAdjustType": { + "type": "string" + }, + "HistoricalOptions": { + "$ref": "#/definitions/AWS::Budgets::Budget.HistoricalOptions" + } + }, + "required": [ + "AutoAdjustType" + ], + "type": "object" + }, + "AWS::Budgets::Budget.BudgetData": { + "additionalProperties": false, + "properties": { + "AutoAdjustData": { + "$ref": "#/definitions/AWS::Budgets::Budget.AutoAdjustData" + }, + "BudgetLimit": { + "$ref": "#/definitions/AWS::Budgets::Budget.Spend" + }, + "BudgetName": { + "type": "string" + }, + "BudgetType": { + "type": "string" + }, + "CostFilters": { + "type": "object" + }, + "CostTypes": { + "$ref": "#/definitions/AWS::Budgets::Budget.CostTypes" + }, + "PlannedBudgetLimits": { + "type": "object" + }, + "TimePeriod": { + "$ref": "#/definitions/AWS::Budgets::Budget.TimePeriod" + }, + "TimeUnit": { + "type": "string" + } + }, + "required": [ + "BudgetType", + "TimeUnit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.CostTypes": { + "additionalProperties": false, + "properties": { + "IncludeCredit": { + "type": "boolean" + }, + "IncludeDiscount": { + "type": "boolean" + }, + "IncludeOtherSubscription": { + "type": "boolean" + }, + "IncludeRecurring": { + "type": "boolean" + }, + "IncludeRefund": { + "type": "boolean" + }, + "IncludeSubscription": { + "type": "boolean" + }, + "IncludeSupport": { + "type": "boolean" + }, + "IncludeTax": { + "type": "boolean" + }, + "IncludeUpfront": { + "type": "boolean" + }, + "UseAmortized": { + "type": "boolean" + }, + "UseBlended": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Budgets::Budget.HistoricalOptions": { + "additionalProperties": false, + "properties": { + "BudgetAdjustmentPeriod": { + "type": "number" + } + }, + "required": [ + "BudgetAdjustmentPeriod" + ], + "type": "object" + }, + "AWS::Budgets::Budget.Notification": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "NotificationType": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "ThresholdType": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "NotificationType", + "Threshold" + ], + "type": "object" + }, + "AWS::Budgets::Budget.NotificationWithSubscribers": { + "additionalProperties": false, + "properties": { + "Notification": { + "$ref": "#/definitions/AWS::Budgets::Budget.Notification" + }, + "Subscribers": { + "items": { + "$ref": "#/definitions/AWS::Budgets::Budget.Subscriber" + }, + "type": "array" + } + }, + "required": [ + "Notification", + "Subscribers" + ], + "type": "object" + }, + "AWS::Budgets::Budget.Spend": { + "additionalProperties": false, + "properties": { + "Amount": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Amount", + "Unit" + ], + "type": "object" + }, + "AWS::Budgets::Budget.Subscriber": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "SubscriptionType": { + "type": "string" + } + }, + "required": [ + "Address", + "SubscriptionType" + ], + "type": "object" + }, + "AWS::Budgets::Budget.TimePeriod": { + "additionalProperties": false, + "properties": { + "End": { + "type": "string" + }, + "Start": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Budgets::BudgetsAction": { + "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": { + "ActionThreshold": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ActionThreshold" + }, + "ActionType": { + "type": "string" + }, + "ApprovalModel": { + "type": "string" + }, + "BudgetName": { + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Definition" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "NotificationType": { + "type": "string" + }, + "Subscribers": { + "items": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.Subscriber" + }, + "type": "array" + } + }, + "required": [ + "ActionThreshold", + "ActionType", + "BudgetName", + "Definition", + "ExecutionRoleArn", + "NotificationType", + "Subscribers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Budgets::BudgetsAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.ActionThreshold": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.Definition": { + "additionalProperties": false, + "properties": { + "IamActionDefinition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.IamActionDefinition" + }, + "ScpActionDefinition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.ScpActionDefinition" + }, + "SsmActionDefinition": { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction.SsmActionDefinition" + } + }, + "type": "object" + }, + "AWS::Budgets::BudgetsAction.IamActionDefinition": { + "additionalProperties": false, + "properties": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PolicyArn": { + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "PolicyArn" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.ScpActionDefinition": { + "additionalProperties": false, + "properties": { + "PolicyId": { + "type": "string" + }, + "TargetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "PolicyId", + "TargetIds" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.SsmActionDefinition": { + "additionalProperties": false, + "properties": { + "InstanceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Region": { + "type": "string" + }, + "Subtype": { + "type": "string" + } + }, + "required": [ + "InstanceIds", + "Region", + "Subtype" + ], + "type": "object" + }, + "AWS::Budgets::BudgetsAction.Subscriber": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Address", + "Type" + ], + "type": "object" + }, + "AWS::CE::AnomalyMonitor": { + "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": { + "MonitorDimension": { + "type": "string" + }, + "MonitorName": { + "type": "string" + }, + "MonitorSpecification": { + "type": "string" + }, + "MonitorType": { + "type": "string" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/AWS::CE::AnomalyMonitor.ResourceTag" + }, + "type": "array" + } + }, + "required": [ + "MonitorName", + "MonitorType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CE::AnomalyMonitor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CE::AnomalyMonitor.ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::CE::AnomalySubscription": { + "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": { + "Frequency": { + "type": "string" + }, + "MonitorArnList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/AWS::CE::AnomalySubscription.ResourceTag" + }, + "type": "array" + }, + "Subscribers": { + "items": { + "$ref": "#/definitions/AWS::CE::AnomalySubscription.Subscriber" + }, + "type": "array" + }, + "SubscriptionName": { + "type": "string" + }, + "Threshold": { + "type": "number" + } + }, + "required": [ + "Frequency", + "MonitorArnList", + "Subscribers", + "SubscriptionName", + "Threshold" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CE::AnomalySubscription" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CE::AnomalySubscription.ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::CE::AnomalySubscription.Subscriber": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Address", + "Type" + ], + "type": "object" + }, + "AWS::CE::CostCategory": { + "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": { + "DefaultValue": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RuleVersion": { + "type": "string" + }, + "Rules": { + "type": "string" + }, + "SplitChargeRules": { + "type": "string" + } + }, + "required": [ + "Name", + "RuleVersion", + "Rules" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CE::CostCategory" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CUR::ReportDefinition": { + "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": { + "AdditionalArtifacts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdditionalSchemaElements": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BillingViewArn": { + "type": "string" + }, + "Compression": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "RefreshClosedReports": { + "type": "boolean" + }, + "ReportName": { + "type": "string" + }, + "ReportVersioning": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Prefix": { + "type": "string" + }, + "S3Region": { + "type": "string" + }, + "TimeUnit": { + "type": "string" + } + }, + "required": [ + "Compression", + "Format", + "RefreshClosedReports", + "ReportName", + "ReportVersioning", + "S3Bucket", + "S3Prefix", + "S3Region", + "TimeUnit" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CUR::ReportDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cassandra::Keyspace": { + "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": { + "KeyspaceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cassandra::Keyspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cassandra::Table": { + "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": { + "BillingMode": { + "$ref": "#/definitions/AWS::Cassandra::Table.BillingMode" + }, + "ClusteringKeyColumns": { + "items": { + "$ref": "#/definitions/AWS::Cassandra::Table.ClusteringKeyColumn" + }, + "type": "array" + }, + "DefaultTimeToLive": { + "type": "number" + }, + "EncryptionSpecification": { + "$ref": "#/definitions/AWS::Cassandra::Table.EncryptionSpecification" + }, + "KeyspaceName": { + "type": "string" + }, + "PartitionKeyColumns": { + "items": { + "$ref": "#/definitions/AWS::Cassandra::Table.Column" + }, + "type": "array" + }, + "PointInTimeRecoveryEnabled": { + "type": "boolean" + }, + "RegularColumns": { + "items": { + "$ref": "#/definitions/AWS::Cassandra::Table.Column" + }, + "type": "array" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KeyspaceName", + "PartitionKeyColumns" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cassandra::Table" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cassandra::Table.BillingMode": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::Cassandra::Table.ProvisionedThroughput" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::Cassandra::Table.ClusteringKeyColumn": { + "additionalProperties": false, + "properties": { + "Column": { + "$ref": "#/definitions/AWS::Cassandra::Table.Column" + }, + "OrderBy": { + "type": "string" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Cassandra::Table.Column": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "type": "string" + }, + "ColumnType": { + "type": "string" + } + }, + "required": [ + "ColumnName", + "ColumnType" + ], + "type": "object" + }, + "AWS::Cassandra::Table.EncryptionSpecification": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KmsKeyIdentifier": { + "type": "string" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "AWS::Cassandra::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "number" + }, + "WriteCapacityUnits": { + "type": "number" + } + }, + "required": [ + "ReadCapacityUnits", + "WriteCapacityUnits" + ], + "type": "object" + }, + "AWS::CertificateManager::Account": { + "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": { + "ExpiryEventsConfiguration": { + "$ref": "#/definitions/AWS::CertificateManager::Account.ExpiryEventsConfiguration" + } + }, + "required": [ + "ExpiryEventsConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CertificateManager::Account" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CertificateManager::Account.ExpiryEventsConfiguration": { + "additionalProperties": false, + "properties": { + "DaysBeforeExpiry": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::CertificateManager::Certificate": { + "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": { + "CertificateAuthorityArn": { + "type": "string" + }, + "CertificateTransparencyLoggingPreference": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "DomainValidationOptions": { + "items": { + "$ref": "#/definitions/AWS::CertificateManager::Certificate.DomainValidationOption" + }, + "type": "array" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ValidationMethod": { + "type": "string" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CertificateManager::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CertificateManager::Certificate.DomainValidationOption": { + "additionalProperties": false, + "properties": { + "DomainName": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "ValidationDomain": { + "type": "string" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "AWS::Chatbot::SlackChannelConfiguration": { + "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": { + "ConfigurationName": { + "type": "string" + }, + "GuardrailPolicies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IamRoleArn": { + "type": "string" + }, + "LoggingLevel": { + "type": "string" + }, + "SlackChannelId": { + "type": "string" + }, + "SlackWorkspaceId": { + "type": "string" + }, + "SnsTopicArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserRoleRequired": { + "type": "boolean" + } + }, + "required": [ + "ConfigurationName", + "IamRoleArn", + "SlackChannelId", + "SlackWorkspaceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Chatbot::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cloud9::EnvironmentEC2": { + "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": { + "AutomaticStopTimeMinutes": { + "type": "number" + }, + "ConnectionType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OwnerArn": { + "type": "string" + }, + "Repositories": { + "items": { + "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2.Repository" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cloud9::EnvironmentEC2" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cloud9::EnvironmentEC2.Repository": { + "additionalProperties": false, + "properties": { + "PathComponent": { + "type": "string" + }, + "RepositoryUrl": { + "type": "string" + } + }, + "required": [ + "PathComponent", + "RepositoryUrl" + ], + "type": "object" + }, + "AWS::CloudFormation::CustomResource": { + "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": { + "ServiceToken": { + "type": "string" + } + }, + "required": [ + "ServiceToken" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::CustomResource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::HookTypeConfig": { + "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": { + "Configuration": { + "type": "string" + }, + "ConfigurationAlias": { + "type": "string" + }, + "TypeArn": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "Configuration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookTypeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::HookVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::HookVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFormation::Macro": { + "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": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "LogGroupName": { + "type": "string" + }, + "LogRoleARN": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "FunctionName", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::Macro" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::ModuleDefaultVersion": { + "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": { + "Arn": { + "type": "string" + }, + "ModuleName": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::ModuleDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::ModuleVersion": { + "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": { + "ModuleName": { + "type": "string" + }, + "ModulePackage": { + "type": "string" + } + }, + "required": [ + "ModuleName", + "ModulePackage" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::ModuleVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::PublicTypeVersion": { + "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": { + "Arn": { + "type": "string" + }, + "LogDeliveryBucket": { + "type": "string" + }, + "PublicVersionNumber": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::PublicTypeVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::Publisher": { + "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": { + "AcceptTermsAndConditions": { + "type": "boolean" + }, + "ConnectionArn": { + "type": "string" + } + }, + "required": [ + "AcceptTermsAndConditions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::Publisher" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::ResourceDefaultVersion": { + "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": { + "TypeName": { + "type": "string" + }, + "TypeVersionArn": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::ResourceDefaultVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::ResourceVersion": { + "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": { + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::ResourceVersion.LoggingConfig" + }, + "SchemaHandlerPackage": { + "type": "string" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "SchemaHandlerPackage", + "TypeName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::ResourceVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::ResourceVersion.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFormation::Stack": { + "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": { + "NotificationARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Parameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateURL": { + "type": "string" + }, + "TimeoutInMinutes": { + "type": "number" + } + }, + "required": [ + "TemplateURL" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::Stack" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::StackSet": { + "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": { + "AdministrationRoleARN": { + "type": "string" + }, + "AutoDeployment": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.AutoDeployment" + }, + "CallAs": { + "type": "string" + }, + "Capabilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "ExecutionRoleName": { + "type": "string" + }, + "ManagedExecution": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.ManagedExecution" + }, + "OperationPreferences": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.OperationPreferences" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter" + }, + "type": "array" + }, + "PermissionModel": { + "type": "string" + }, + "StackInstancesGroup": { + "items": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.StackInstances" + }, + "type": "array" + }, + "StackSetName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateURL": { + "type": "string" + } + }, + "required": [ + "PermissionModel", + "StackSetName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::StackSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFormation::StackSet.AutoDeployment": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetainStacksOnAccountRemoval": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.DeploymentTargets": { + "additionalProperties": false, + "properties": { + "AccountFilterType": { + "type": "string" + }, + "Accounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationalUnitIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.ManagedExecution": { + "additionalProperties": false, + "properties": { + "Active": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.OperationPreferences": { + "additionalProperties": false, + "properties": { + "FailureToleranceCount": { + "type": "number" + }, + "FailureTolerancePercentage": { + "type": "number" + }, + "MaxConcurrentCount": { + "type": "number" + }, + "MaxConcurrentPercentage": { + "type": "number" + }, + "RegionConcurrencyType": { + "type": "string" + }, + "RegionOrder": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CloudFormation::StackSet.Parameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterKey", + "ParameterValue" + ], + "type": "object" + }, + "AWS::CloudFormation::StackSet.StackInstances": { + "additionalProperties": false, + "properties": { + "DeploymentTargets": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.DeploymentTargets" + }, + "ParameterOverrides": { + "items": { + "$ref": "#/definitions/AWS::CloudFormation::StackSet.Parameter" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "DeploymentTargets", + "Regions" + ], + "type": "object" + }, + "AWS::CloudFormation::TypeActivation": { + "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": { + "AutoUpdate": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "LoggingConfig": { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation.LoggingConfig" + }, + "MajorVersion": { + "type": "string" + }, + "PublicTypeArn": { + "type": "string" + }, + "PublisherId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "TypeName": { + "type": "string" + }, + "TypeNameAlias": { + "type": "string" + }, + "VersionBump": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::TypeActivation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::TypeActivation.LoggingConfig": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "LogRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFormation::WaitCondition": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "CreationPolicy": { + "type": "object" + }, + "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": { + "Count": { + "type": "number" + }, + "Handle": { + "type": "string" + }, + "Timeout": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::WaitCondition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFormation::WaitConditionHandle": { + "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": {}, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFormation::WaitConditionHandle" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy": { + "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": { + "CachePolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CachePolicyConfig" + } + }, + "required": [ + "CachePolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::CachePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.CachePolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "DefaultTTL": { + "type": "number" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "ParametersInCacheKeyAndForwardedToOrigin": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin" + } + }, + "required": [ + "DefaultTTL", + "MaxTTL", + "MinTTL", + "Name", + "ParametersInCacheKeyAndForwardedToOrigin" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.CookiesConfig": { + "additionalProperties": false, + "properties": { + "CookieBehavior": { + "type": "string" + }, + "Cookies": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CookieBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.HeadersConfig": { + "additionalProperties": false, + "properties": { + "HeaderBehavior": { + "type": "string" + }, + "Headers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "HeaderBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin": { + "additionalProperties": false, + "properties": { + "CookiesConfig": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.CookiesConfig" + }, + "EnableAcceptEncodingBrotli": { + "type": "boolean" + }, + "EnableAcceptEncodingGzip": { + "type": "boolean" + }, + "HeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.HeadersConfig" + }, + "QueryStringsConfig": { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy.QueryStringsConfig" + } + }, + "required": [ + "CookiesConfig", + "EnableAcceptEncodingGzip", + "HeadersConfig", + "QueryStringsConfig" + ], + "type": "object" + }, + "AWS::CloudFront::CachePolicy.QueryStringsConfig": { + "additionalProperties": false, + "properties": { + "QueryStringBehavior": { + "type": "string" + }, + "QueryStrings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "QueryStringBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::CloudFrontOriginAccessIdentity": { + "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": { + "CloudFrontOriginAccessIdentityConfig": { + "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig" + } + }, + "required": [ + "CloudFrontOriginAccessIdentityConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::CloudFrontOriginAccessIdentity" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "required": [ + "Comment" + ], + "type": "object" + }, + "AWS::CloudFront::ContinuousDeploymentPolicy": { + "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": { + "ContinuousDeploymentPolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfig" + } + }, + "required": [ + "ContinuousDeploymentPolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::ContinuousDeploymentPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::ContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "StagingDistributionDnsNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TrafficConfig": { + "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.TrafficConfig" + } + }, + "required": [ + "Enabled", + "StagingDistributionDnsNames" + ], + "type": "object" + }, + "AWS::CloudFront::ContinuousDeploymentPolicy.SessionStickinessConfig": { + "additionalProperties": false, + "properties": { + "IdleTTL": { + "type": "number" + }, + "MaximumTTL": { + "type": "number" + } + }, + "required": [ + "IdleTTL", + "MaximumTTL" + ], + "type": "object" + }, + "AWS::CloudFront::ContinuousDeploymentPolicy.SingleHeaderConfig": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Header", + "Value" + ], + "type": "object" + }, + "AWS::CloudFront::ContinuousDeploymentPolicy.SingleWeightConfig": { + "additionalProperties": false, + "properties": { + "SessionStickinessConfig": { + "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.SessionStickinessConfig" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Weight" + ], + "type": "object" + }, + "AWS::CloudFront::ContinuousDeploymentPolicy.TrafficConfig": { + "additionalProperties": false, + "properties": { + "SingleHeaderConfig": { + "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.SingleHeaderConfig" + }, + "SingleWeightConfig": { + "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy.SingleWeightConfig" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution": { + "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": { + "DistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DistributionConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DistributionConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::Distribution" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.CacheBehavior": { + "additionalProperties": false, + "properties": { + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CachePolicyId": { + "type": "string" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Compress": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "number" + }, + "FieldLevelEncryptionId": { + "type": "string" + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "FunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation" + }, + "type": "array" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "OriginRequestPolicyId": { + "type": "string" + }, + "PathPattern": { + "type": "string" + }, + "RealtimeLogConfigArn": { + "type": "string" + }, + "ResponseHeadersPolicyId": { + "type": "string" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { + "type": "string" + } + }, + "required": [ + "PathPattern", + "TargetOriginId", + "ViewerProtocolPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Cookies": { + "additionalProperties": false, + "properties": { + "Forward": { + "type": "string" + }, + "WhitelistedNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Forward" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.CustomErrorResponse": { + "additionalProperties": false, + "properties": { + "ErrorCachingMinTTL": { + "type": "number" + }, + "ErrorCode": { + "type": "number" + }, + "ResponseCode": { + "type": "number" + }, + "ResponsePagePath": { + "type": "string" + } + }, + "required": [ + "ErrorCode" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.CustomOriginConfig": { + "additionalProperties": false, + "properties": { + "HTTPPort": { + "type": "number" + }, + "HTTPSPort": { + "type": "number" + }, + "OriginKeepaliveTimeout": { + "type": "number" + }, + "OriginProtocolPolicy": { + "type": "string" + }, + "OriginReadTimeout": { + "type": "number" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "OriginProtocolPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.DefaultCacheBehavior": { + "additionalProperties": false, + "properties": { + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CachePolicyId": { + "type": "string" + }, + "CachedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Compress": { + "type": "boolean" + }, + "DefaultTTL": { + "type": "number" + }, + "FieldLevelEncryptionId": { + "type": "string" + }, + "ForwardedValues": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ForwardedValues" + }, + "FunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.FunctionAssociation" + }, + "type": "array" + }, + "LambdaFunctionAssociations": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LambdaFunctionAssociation" + }, + "type": "array" + }, + "MaxTTL": { + "type": "number" + }, + "MinTTL": { + "type": "number" + }, + "OriginRequestPolicyId": { + "type": "string" + }, + "RealtimeLogConfigArn": { + "type": "string" + }, + "ResponseHeadersPolicyId": { + "type": "string" + }, + "SmoothStreaming": { + "type": "boolean" + }, + "TargetOriginId": { + "type": "string" + }, + "TrustedKeyGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TrustedSigners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ViewerProtocolPolicy": { + "type": "string" + } + }, + "required": [ + "TargetOriginId", + "ViewerProtocolPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.DistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CNAMEs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheBehaviors": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CacheBehavior" + }, + "type": "array" + }, + "Comment": { + "type": "string" + }, + "ContinuousDeploymentPolicyId": { + "type": "string" + }, + "CustomErrorResponses": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomErrorResponse" + }, + "type": "array" + }, + "CustomOrigin": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyCustomOrigin" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.DefaultCacheBehavior" + }, + "DefaultRootObject": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "HttpVersion": { + "type": "string" + }, + "IPV6Enabled": { + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Logging" + }, + "OriginGroups": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroups" + }, + "Origins": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Origin" + }, + "type": "array" + }, + "PriceClass": { + "type": "string" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Restrictions" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.LegacyS3Origin" + }, + "Staging": { + "type": "boolean" + }, + "ViewerCertificate": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.ViewerCertificate" + }, + "WebACLId": { + "type": "string" + } + }, + "required": [ + "DefaultCacheBehavior", + "Enabled" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.ForwardedValues": { + "additionalProperties": false, + "properties": { + "Cookies": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.Cookies" + }, + "Headers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "QueryString": { + "type": "boolean" + }, + "QueryStringCacheKeys": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "QueryString" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.FunctionAssociation": { + "additionalProperties": false, + "properties": { + "EventType": { + "type": "string" + }, + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.GeoRestriction": { + "additionalProperties": false, + "properties": { + "Locations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RestrictionType": { + "type": "string" + } + }, + "required": [ + "RestrictionType" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.LambdaFunctionAssociation": { + "additionalProperties": false, + "properties": { + "EventType": { + "type": "string" + }, + "IncludeBody": { + "type": "boolean" + }, + "LambdaFunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.LegacyCustomOrigin": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "HTTPPort": { + "type": "number" + }, + "HTTPSPort": { + "type": "number" + }, + "OriginProtocolPolicy": { + "type": "string" + }, + "OriginSSLProtocols": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "DNSName", + "OriginProtocolPolicy", + "OriginSSLProtocols" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.LegacyS3Origin": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "OriginAccessIdentity": { + "type": "string" + } + }, + "required": [ + "DNSName" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Logging": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "IncludeCookies": { + "type": "boolean" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.Origin": { + "additionalProperties": false, + "properties": { + "ConnectionAttempts": { + "type": "number" + }, + "ConnectionTimeout": { + "type": "number" + }, + "CustomOriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.CustomOriginConfig" + }, + "DomainName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "OriginAccessControlId": { + "type": "string" + }, + "OriginCustomHeaders": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginCustomHeader" + }, + "type": "array" + }, + "OriginPath": { + "type": "string" + }, + "OriginShield": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginShield" + }, + "S3OriginConfig": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.S3OriginConfig" + } + }, + "required": [ + "DomainName", + "Id" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginCustomHeader": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "HeaderValue": { + "type": "string" + } + }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroup": { + "additionalProperties": false, + "properties": { + "FailoverCriteria": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupFailoverCriteria" + }, + "Id": { + "type": "string" + }, + "Members": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMembers" + } + }, + "required": [ + "FailoverCriteria", + "Id", + "Members" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroupFailoverCriteria": { + "additionalProperties": false, + "properties": { + "StatusCodes": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.StatusCodes" + } + }, + "required": [ + "StatusCodes" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroupMember": { + "additionalProperties": false, + "properties": { + "OriginId": { + "type": "string" + } + }, + "required": [ + "OriginId" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroupMembers": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroupMember" + }, + "type": "array" + }, + "Quantity": { + "type": "number" + } + }, + "required": [ + "Items", + "Quantity" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginGroups": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.OriginGroup" + }, + "type": "array" + }, + "Quantity": { + "type": "number" + } + }, + "required": [ + "Quantity" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.OriginShield": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "OriginShieldRegion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.Restrictions": { + "additionalProperties": false, + "properties": { + "GeoRestriction": { + "$ref": "#/definitions/AWS::CloudFront::Distribution.GeoRestriction" + } + }, + "required": [ + "GeoRestriction" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.S3OriginConfig": { + "additionalProperties": false, + "properties": { + "OriginAccessIdentity": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Distribution.StatusCodes": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Quantity": { + "type": "number" + } + }, + "required": [ + "Items", + "Quantity" + ], + "type": "object" + }, + "AWS::CloudFront::Distribution.ViewerCertificate": { + "additionalProperties": false, + "properties": { + "AcmCertificateArn": { + "type": "string" + }, + "CloudFrontDefaultCertificate": { + "type": "boolean" + }, + "IamCertificateId": { + "type": "string" + }, + "MinimumProtocolVersion": { + "type": "string" + }, + "SslSupportMethod": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::Function": { + "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": { + "AutoPublish": { + "type": "boolean" + }, + "FunctionCode": { + "type": "string" + }, + "FunctionConfig": { + "$ref": "#/definitions/AWS::CloudFront::Function.FunctionConfig" + }, + "FunctionMetadata": { + "$ref": "#/definitions/AWS::CloudFront::Function.FunctionMetadata" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "FunctionCode", + "FunctionConfig", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::Function" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::Function.FunctionConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Runtime": { + "type": "string" + } + }, + "required": [ + "Comment", + "Runtime" + ], + "type": "object" + }, + "AWS::CloudFront::Function.FunctionMetadata": { + "additionalProperties": false, + "properties": { + "FunctionARN": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudFront::KeyGroup": { + "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": { + "KeyGroupConfig": { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup.KeyGroupConfig" + } + }, + "required": [ + "KeyGroupConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::KeyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::KeyGroup.KeyGroupConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Items": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Items", + "Name" + ], + "type": "object" + }, + "AWS::CloudFront::MonitoringSubscription": { + "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": { + "DistributionId": { + "type": "string" + }, + "MonitoringSubscription": { + "$ref": "#/definitions/AWS::CloudFront::MonitoringSubscription.MonitoringSubscription" + } + }, + "required": [ + "DistributionId", + "MonitoringSubscription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::MonitoringSubscription" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::MonitoringSubscription.MonitoringSubscription": { + "additionalProperties": false, + "properties": { + "RealtimeMetricsSubscriptionConfig": { + "$ref": "#/definitions/AWS::CloudFront::MonitoringSubscription.RealtimeMetricsSubscriptionConfig" + } + }, + "type": "object" + }, + "AWS::CloudFront::MonitoringSubscription.RealtimeMetricsSubscriptionConfig": { + "additionalProperties": false, + "properties": { + "RealtimeMetricsSubscriptionStatus": { + "type": "string" + } + }, + "required": [ + "RealtimeMetricsSubscriptionStatus" + ], + "type": "object" + }, + "AWS::CloudFront::OriginAccessControl": { + "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": { + "OriginAccessControlConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginAccessControl.OriginAccessControlConfig" + } + }, + "required": [ + "OriginAccessControlConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::OriginAccessControl" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::OriginAccessControl.OriginAccessControlConfig": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OriginAccessControlOriginType": { + "type": "string" + }, + "SigningBehavior": { + "type": "string" + }, + "SigningProtocol": { + "type": "string" + } + }, + "required": [ + "Name", + "OriginAccessControlOriginType", + "SigningBehavior", + "SigningProtocol" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy": { + "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": { + "OriginRequestPolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig" + } + }, + "required": [ + "OriginRequestPolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::OriginRequestPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy.CookiesConfig": { + "additionalProperties": false, + "properties": { + "CookieBehavior": { + "type": "string" + }, + "Cookies": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CookieBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy.HeadersConfig": { + "additionalProperties": false, + "properties": { + "HeaderBehavior": { + "type": "string" + }, + "Headers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "HeaderBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy.OriginRequestPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CookiesConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.CookiesConfig" + }, + "HeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.HeadersConfig" + }, + "Name": { + "type": "string" + }, + "QueryStringsConfig": { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig" + } + }, + "required": [ + "CookiesConfig", + "HeadersConfig", + "Name", + "QueryStringsConfig" + ], + "type": "object" + }, + "AWS::CloudFront::OriginRequestPolicy.QueryStringsConfig": { + "additionalProperties": false, + "properties": { + "QueryStringBehavior": { + "type": "string" + }, + "QueryStrings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "QueryStringBehavior" + ], + "type": "object" + }, + "AWS::CloudFront::PublicKey": { + "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": { + "PublicKeyConfig": { + "$ref": "#/definitions/AWS::CloudFront::PublicKey.PublicKeyConfig" + } + }, + "required": [ + "PublicKeyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::PublicKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::PublicKey.PublicKeyConfig": { + "additionalProperties": false, + "properties": { + "CallerReference": { + "type": "string" + }, + "Comment": { + "type": "string" + }, + "EncodedKey": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CallerReference", + "EncodedKey", + "Name" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig": { + "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": { + "EndPoints": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.EndPoint" + }, + "type": "array" + }, + "Fields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "EndPoints", + "Fields", + "Name", + "SamplingRate" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::RealtimeLogConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.EndPoint": { + "additionalProperties": false, + "properties": { + "KinesisStreamConfig": { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig" + }, + "StreamType": { + "type": "string" + } + }, + "required": [ + "KinesisStreamConfig", + "StreamType" + ], + "type": "object" + }, + "AWS::CloudFront::RealtimeLogConfig.KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamArn" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy": { + "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": { + "ResponseHeadersPolicyConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig" + } + }, + "required": [ + "ResponseHeadersPolicyConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::ResponseHeadersPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "ContentSecurityPolicy", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + } + }, + "required": [ + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CorsConfig": { + "additionalProperties": false, + "properties": { + "AccessControlAllowCredentials": { + "type": "boolean" + }, + "AccessControlAllowHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowHeaders" + }, + "AccessControlAllowMethods": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowMethods" + }, + "AccessControlAllowOrigins": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlAllowOrigins" + }, + "AccessControlExposeHeaders": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.AccessControlExposeHeaders" + }, + "AccessControlMaxAgeSec": { + "type": "number" + }, + "OriginOverride": { + "type": "boolean" + } + }, + "required": [ + "AccessControlAllowCredentials", + "AccessControlAllowHeaders", + "AccessControlAllowMethods", + "AccessControlAllowOrigins", + "OriginOverride" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + }, + "Override": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Header", + "Override", + "Value" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeader" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.FrameOptions": { + "additionalProperties": false, + "properties": { + "FrameOption": { + "type": "string" + }, + "Override": { + "type": "boolean" + } + }, + "required": [ + "FrameOption", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy": { + "additionalProperties": false, + "properties": { + "Override": { + "type": "boolean" + }, + "ReferrerPolicy": { + "type": "string" + } + }, + "required": [ + "Override", + "ReferrerPolicy" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.RemoveHeader": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "string" + } + }, + "required": [ + "Header" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.RemoveHeadersConfig": { + "additionalProperties": false, + "properties": { + "Items": { + "items": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.RemoveHeader" + }, + "type": "array" + } + }, + "required": [ + "Items" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ResponseHeadersPolicyConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "CorsConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CorsConfig" + }, + "CustomHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.CustomHeadersConfig" + }, + "Name": { + "type": "string" + }, + "RemoveHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.RemoveHeadersConfig" + }, + "SecurityHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig" + }, + "ServerTimingHeadersConfig": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.SecurityHeadersConfig": { + "additionalProperties": false, + "properties": { + "ContentSecurityPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentSecurityPolicy" + }, + "ContentTypeOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ContentTypeOptions" + }, + "FrameOptions": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.FrameOptions" + }, + "ReferrerPolicy": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.ReferrerPolicy" + }, + "StrictTransportSecurity": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity" + }, + "XSSProtection": { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy.XSSProtection" + } + }, + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.ServerTimingHeadersConfig": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "SamplingRate": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.StrictTransportSecurity": { + "additionalProperties": false, + "properties": { + "AccessControlMaxAgeSec": { + "type": "number" + }, + "IncludeSubdomains": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Preload": { + "type": "boolean" + } + }, + "required": [ + "AccessControlMaxAgeSec", + "Override" + ], + "type": "object" + }, + "AWS::CloudFront::ResponseHeadersPolicy.XSSProtection": { + "additionalProperties": false, + "properties": { + "ModeBlock": { + "type": "boolean" + }, + "Override": { + "type": "boolean" + }, + "Protection": { + "type": "boolean" + }, + "ReportUri": { + "type": "string" + } + }, + "required": [ + "Override", + "Protection" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution": { + "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": { + "StreamingDistributionConfig": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StreamingDistributionConfig", + "Tags" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudFront::StreamingDistribution" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.Logging": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Enabled", + "Prefix" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.S3Origin": { + "additionalProperties": false, + "properties": { + "DomainName": { + "type": "string" + }, + "OriginAccessIdentity": { + "type": "string" + } + }, + "required": [ + "DomainName", + "OriginAccessIdentity" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.StreamingDistributionConfig": { + "additionalProperties": false, + "properties": { + "Aliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Comment": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "Logging": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.Logging" + }, + "PriceClass": { + "type": "string" + }, + "S3Origin": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.S3Origin" + }, + "TrustedSigners": { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution.TrustedSigners" + } + }, + "required": [ + "Comment", + "Enabled", + "S3Origin", + "TrustedSigners" + ], + "type": "object" + }, + "AWS::CloudFront::StreamingDistribution.TrustedSigners": { + "additionalProperties": false, + "properties": { + "AwsAccountNumbers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::CloudTrail::EventDataStore": { + "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": { + "AdvancedEventSelectors": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::EventDataStore.AdvancedEventSelector" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiRegionEnabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "OrganizationEnabled": { + "type": "boolean" + }, + "RetentionPeriod": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TerminationProtectionEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudTrail::EventDataStore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudTrail::EventDataStore.AdvancedEventSelector": { + "additionalProperties": false, + "properties": { + "FieldSelectors": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::EventDataStore.AdvancedFieldSelector" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "FieldSelectors" + ], + "type": "object" + }, + "AWS::CloudTrail::EventDataStore.AdvancedFieldSelector": { + "additionalProperties": false, + "properties": { + "EndsWith": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Equals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Field": { + "type": "string" + }, + "NotEndsWith": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NotEquals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NotStartsWith": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StartsWith": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Field" + ], + "type": "object" + }, + "AWS::CloudTrail::Trail": { + "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": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "CloudWatchLogsRoleArn": { + "type": "string" + }, + "EnableLogFileValidation": { + "type": "boolean" + }, + "EventSelectors": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.EventSelector" + }, + "type": "array" + }, + "IncludeGlobalServiceEvents": { + "type": "boolean" + }, + "InsightSelectors": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.InsightSelector" + }, + "type": "array" + }, + "IsLogging": { + "type": "boolean" + }, + "IsMultiRegionTrail": { + "type": "boolean" + }, + "IsOrganizationTrail": { + "type": "boolean" + }, + "KMSKeyId": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + }, + "SnsTopicName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrailName": { + "type": "string" + } + }, + "required": [ + "IsLogging", + "S3BucketName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudTrail::Trail" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudTrail::Trail.DataResource": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudTrail::Trail.EventSelector": { + "additionalProperties": false, + "properties": { + "DataResources": { + "items": { + "$ref": "#/definitions/AWS::CloudTrail::Trail.DataResource" + }, + "type": "array" + }, + "ExcludeManagementEventSources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludeManagementEvents": { + "type": "boolean" + }, + "ReadWriteType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudTrail::Trail.InsightSelector": { + "additionalProperties": false, + "properties": { + "InsightType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudWatch::Alarm": { + "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": { + "ActionsEnabled": { + "type": "boolean" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AlarmDescription": { + "type": "string" + }, + "AlarmName": { + "type": "string" + }, + "ComparisonOperator": { + "type": "string" + }, + "DatapointsToAlarm": { + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" + }, + "EvaluateLowSampleCountPercentile": { + "type": "string" + }, + "EvaluationPeriods": { + "type": "number" + }, + "ExtendedStatistic": { + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Metrics": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricDataQuery" + }, + "type": "array" + }, + "Namespace": { + "type": "string" + }, + "OKActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "ThresholdMetricId": { + "type": "string" + }, + "TreatMissingData": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "EvaluationPeriods" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::Alarm" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudWatch::Alarm.Dimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::CloudWatch::Alarm.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudWatch::Alarm.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.MetricStat" + }, + "Period": { + "type": "number" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::Alarm.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::Alarm.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Metric", + "Period", + "Stat" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector": { + "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": { + "Configuration": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Configuration" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "type": "array" + }, + "MetricMathAnomalyDetector": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "SingleMetricAnomalyDetector": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector" + }, + "Stat": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::AnomalyDetector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.Configuration": { + "additionalProperties": false, + "properties": { + "ExcludedTimeRanges": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Range" + }, + "type": "array" + }, + "MetricTimeZone": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.Dimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQueries": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricDataQuery": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Label": { + "type": "string" + }, + "MetricStat": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricStat" + }, + "Period": { + "type": "number" + }, + "ReturnData": { + "type": "boolean" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricMathAnomalyDetector": { + "additionalProperties": false, + "properties": { + "MetricDataQueries": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.MetricDataQuery" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.MetricStat": { + "additionalProperties": false, + "properties": { + "Metric": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Metric" + }, + "Period": { + "type": "number" + }, + "Stat": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "Metric", + "Period", + "Stat" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.Range": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::CloudWatch::AnomalyDetector.SingleMetricAnomalyDetector": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Stat": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CloudWatch::CompositeAlarm": { + "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": { + "ActionsEnabled": { + "type": "boolean" + }, + "ActionsSuppressor": { + "type": "string" + }, + "ActionsSuppressorExtensionPeriod": { + "type": "number" + }, + "ActionsSuppressorWaitPeriod": { + "type": "number" + }, + "AlarmActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AlarmDescription": { + "type": "string" + }, + "AlarmName": { + "type": "string" + }, + "AlarmRule": { + "type": "string" + }, + "InsufficientDataActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OKActions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AlarmRule" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::CompositeAlarm" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudWatch::Dashboard": { + "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": { + "DashboardBody": { + "type": "string" + }, + "DashboardName": { + "type": "string" + } + }, + "required": [ + "DashboardBody" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::Dashboard" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudWatch::InsightRule": { + "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": { + "RuleBody": { + "type": "string" + }, + "RuleName": { + "type": "string" + }, + "RuleState": { + "type": "string" + }, + "Tags": { + "$ref": "#/definitions/AWS::CloudWatch::InsightRule.Tags" + } + }, + "required": [ + "RuleBody", + "RuleName", + "RuleState" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::InsightRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudWatch::InsightRule.Tags": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::CloudWatch::MetricStream": { + "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": { + "ExcludeFilters": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamFilter" + }, + "type": "array" + }, + "FirehoseArn": { + "type": "string" + }, + "IncludeFilters": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamFilter" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "OutputFormat": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StatisticsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamStatisticsConfiguration" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FirehoseArn", + "OutputFormat", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CloudWatch::MetricStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CloudWatch::MetricStream.MetricStreamFilter": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + } + }, + "required": [ + "Namespace" + ], + "type": "object" + }, + "AWS::CloudWatch::MetricStream.MetricStreamStatisticsConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalStatistics": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludeMetrics": { + "items": { + "$ref": "#/definitions/AWS::CloudWatch::MetricStream.MetricStreamStatisticsMetric" + }, + "type": "array" + } + }, + "required": [ + "AdditionalStatistics", + "IncludeMetrics" + ], + "type": "object" + }, + "AWS::CloudWatch::MetricStream.MetricStreamStatisticsMetric": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "MetricName", + "Namespace" + ], + "type": "object" + }, + "AWS::CodeArtifact::Domain": { + "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": { + "DomainName": { + "type": "string" + }, + "EncryptionKey": { + "type": "string" + }, + "PermissionsPolicyDocument": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeArtifact::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeArtifact::Repository": { + "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": { + "Description": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "DomainOwner": { + "type": "string" + }, + "ExternalConnections": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PermissionsPolicyDocument": { + "type": "object" + }, + "RepositoryName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Upstreams": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "DomainName", + "RepositoryName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeArtifact::Repository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeBuild::Project": { + "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": { + "Artifacts": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + }, + "BadgeEnabled": { + "type": "boolean" + }, + "BuildBatchConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectBuildBatchConfig" + }, + "Cache": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectCache" + }, + "ConcurrentBuildLimit": { + "type": "number" + }, + "Description": { + "type": "string" + }, + "EncryptionKey": { + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Environment" + }, + "FileSystemLocations": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectFileSystemLocation" + }, + "type": "array" + }, + "LogsConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.LogsConfig" + }, + "Name": { + "type": "string" + }, + "QueuedTimeoutInMinutes": { + "type": "number" + }, + "ResourceAccessRole": { + "type": "string" + }, + "SecondaryArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Artifacts" + }, + "type": "array" + }, + "SecondarySourceVersions": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectSourceVersion" + }, + "type": "array" + }, + "SecondarySources": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "type": "array" + }, + "ServiceRole": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::CodeBuild::Project.Source" + }, + "SourceVersion": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeoutInMinutes": { + "type": "number" + }, + "Triggers": { + "$ref": "#/definitions/AWS::CodeBuild::Project.ProjectTriggers" + }, + "Visibility": { + "type": "string" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.VpcConfig" + } + }, + "required": [ + "Artifacts", + "Environment", + "ServiceRole", + "Source" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeBuild::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.Artifacts": { + "additionalProperties": false, + "properties": { + "ArtifactIdentifier": { + "type": "string" + }, + "EncryptionDisabled": { + "type": "boolean" + }, + "Location": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NamespaceType": { + "type": "string" + }, + "OverrideArtifactName": { + "type": "boolean" + }, + "Packaging": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.BatchRestrictions": { + "additionalProperties": false, + "properties": { + "ComputeTypesAllowed": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumBuildsAllowed": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.BuildStatusConfig": { + "additionalProperties": false, + "properties": { + "Context": { + "type": "string" + }, + "TargetUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.CloudWatchLogsConfig": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.Environment": { + "additionalProperties": false, + "properties": { + "Certificate": { + "type": "string" + }, + "ComputeType": { + "type": "string" + }, + "EnvironmentVariables": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.EnvironmentVariable" + }, + "type": "array" + }, + "Image": { + "type": "string" + }, + "ImagePullCredentialsType": { + "type": "string" + }, + "PrivilegedMode": { + "type": "boolean" + }, + "RegistryCredential": { + "$ref": "#/definitions/AWS::CodeBuild::Project.RegistryCredential" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ComputeType", + "Image", + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.FilterGroup": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::CodeBuild::Project.GitSubmodulesConfig": { + "additionalProperties": false, + "properties": { + "FetchSubmodules": { + "type": "boolean" + } + }, + "required": [ + "FetchSubmodules" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.LogsConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.CloudWatchLogsConfig" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::CodeBuild::Project.S3LogsConfig" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectBuildBatchConfig": { + "additionalProperties": false, + "properties": { + "BatchReportMode": { + "type": "string" + }, + "CombineArtifacts": { + "type": "boolean" + }, + "Restrictions": { + "$ref": "#/definitions/AWS::CodeBuild::Project.BatchRestrictions" + }, + "ServiceRole": { + "type": "string" + }, + "TimeoutInMins": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectCache": { + "additionalProperties": false, + "properties": { + "Location": { + "type": "string" + }, + "Modes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectFileSystemLocation": { + "additionalProperties": false, + "properties": { + "Identifier": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "MountOptions": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Identifier", + "Location", + "MountPoint", + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectSourceVersion": { + "additionalProperties": false, + "properties": { + "SourceIdentifier": { + "type": "string" + }, + "SourceVersion": { + "type": "string" + } + }, + "required": [ + "SourceIdentifier" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.ProjectTriggers": { + "additionalProperties": false, + "properties": { + "BuildType": { + "type": "string" + }, + "FilterGroups": { + "items": { + "$ref": "#/definitions/AWS::CodeBuild::Project.FilterGroup" + }, + "type": "array" + }, + "Webhook": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.RegistryCredential": { + "additionalProperties": false, + "properties": { + "Credential": { + "type": "string" + }, + "CredentialProvider": { + "type": "string" + } + }, + "required": [ + "Credential", + "CredentialProvider" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.S3LogsConfig": { + "additionalProperties": false, + "properties": { + "EncryptionDisabled": { + "type": "boolean" + }, + "Location": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.Source": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/AWS::CodeBuild::Project.SourceAuth" + }, + "BuildSpec": { + "type": "string" + }, + "BuildStatusConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.BuildStatusConfig" + }, + "GitCloneDepth": { + "type": "number" + }, + "GitSubmodulesConfig": { + "$ref": "#/definitions/AWS::CodeBuild::Project.GitSubmodulesConfig" + }, + "InsecureSsl": { + "type": "boolean" + }, + "Location": { + "type": "string" + }, + "ReportBuildStatus": { + "type": "boolean" + }, + "SourceIdentifier": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.SourceAuth": { + "additionalProperties": false, + "properties": { + "Resource": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::Project.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeBuild::Project.WebhookFilter": { + "additionalProperties": false, + "properties": { + "ExcludeMatchedPattern": { + "type": "boolean" + }, + "Pattern": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Pattern", + "Type" + ], + "type": "object" + }, + "AWS::CodeBuild::ReportGroup": { + "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": { + "DeleteReports": { + "type": "boolean" + }, + "ExportConfig": { + "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.ReportExportConfig" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ExportConfig", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeBuild::ReportGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeBuild::ReportGroup.ReportExportConfig": { + "additionalProperties": false, + "properties": { + "ExportConfigType": { + "type": "string" + }, + "S3Destination": { + "$ref": "#/definitions/AWS::CodeBuild::ReportGroup.S3ReportExportConfig" + } + }, + "required": [ + "ExportConfigType" + ], + "type": "object" + }, + "AWS::CodeBuild::ReportGroup.S3ReportExportConfig": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BucketOwner": { + "type": "string" + }, + "EncryptionDisabled": { + "type": "boolean" + }, + "EncryptionKey": { + "type": "string" + }, + "Packaging": { + "type": "string" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::CodeBuild::SourceCredential": { + "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": { + "AuthType": { + "type": "string" + }, + "ServerType": { + "type": "string" + }, + "Token": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "AuthType", + "ServerType", + "Token" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeBuild::SourceCredential" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeCommit::Repository": { + "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": { + "Code": { + "$ref": "#/definitions/AWS::CodeCommit::Repository.Code" + }, + "RepositoryDescription": { + "type": "string" + }, + "RepositoryName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Triggers": { + "items": { + "$ref": "#/definitions/AWS::CodeCommit::Repository.RepositoryTrigger" + }, + "type": "array" + } + }, + "required": [ + "RepositoryName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeCommit::Repository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeCommit::Repository.Code": { + "additionalProperties": false, + "properties": { + "BranchName": { + "type": "string" + }, + "S3": { + "$ref": "#/definitions/AWS::CodeCommit::Repository.S3" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "AWS::CodeCommit::Repository.RepositoryTrigger": { + "additionalProperties": false, + "properties": { + "Branches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CustomData": { + "type": "string" + }, + "DestinationArn": { + "type": "string" + }, + "Events": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "DestinationArn", + "Events", + "Name" + ], + "type": "object" + }, + "AWS::CodeCommit::Repository.S3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::CodeDeploy::Application": { + "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": { + "ApplicationName": { + "type": "string" + }, + "ComputePlatform": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeDeploy::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig": { + "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": { + "ComputePlatform": { + "type": "string" + }, + "DeploymentConfigName": { + "type": "string" + }, + "MinimumHealthyHosts": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts" + }, + "TrafficRoutingConfig": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeDeploy::DeploymentConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig.MinimumHealthyHosts": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary": { + "additionalProperties": false, + "properties": { + "CanaryInterval": { + "type": "number" + }, + "CanaryPercentage": { + "type": "number" + } + }, + "required": [ + "CanaryInterval", + "CanaryPercentage" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear": { + "additionalProperties": false, + "properties": { + "LinearInterval": { + "type": "number" + }, + "LinearPercentage": { + "type": "number" + } + }, + "required": [ + "LinearInterval", + "LinearPercentage" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentConfig.TrafficRoutingConfig": { + "additionalProperties": false, + "properties": { + "TimeBasedCanary": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedCanary" + }, + "TimeBasedLinear": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig.TimeBasedLinear" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup": { + "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": { + "AlarmConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration" + }, + "ApplicationName": { + "type": "string" + }, + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration" + }, + "AutoScalingGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BlueGreenDeploymentConfiguration": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration" + }, + "Deployment": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Deployment" + }, + "DeploymentConfigName": { + "type": "string" + }, + "DeploymentGroupName": { + "type": "string" + }, + "DeploymentStyle": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentStyle" + }, + "ECSServices": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ECSService" + }, + "type": "array" + }, + "Ec2TagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "type": "array" + }, + "Ec2TagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSet" + }, + "LoadBalancerInfo": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo" + }, + "OnPremisesInstanceTagFilters": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "type": "array" + }, + "OnPremisesTagSet": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet" + }, + "OutdatedInstancesStrategy": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerConfigurations": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TriggerConfig" + }, + "type": "array" + } + }, + "required": [ + "ApplicationName", + "ServiceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeDeploy::DeploymentGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.Alarm": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AlarmConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.Alarm" + }, + "type": "array" + }, + "Enabled": { + "type": "boolean" + }, + "IgnorePollAlarmFailure": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.AutoRollbackConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.BlueGreenDeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "DeploymentReadyOption": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption" + }, + "GreenFleetProvisioningOption": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption" + }, + "TerminateBlueInstancesOnDeploymentSuccess": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.BlueInstanceTerminationOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TerminationWaitTimeInMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.Deployment": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "IgnoreApplicationStopFailures": { + "type": "boolean" + }, + "Revision": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.RevisionLocation" + } + }, + "required": [ + "Revision" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.DeploymentReadyOption": { + "additionalProperties": false, + "properties": { + "ActionOnTimeout": { + "type": "string" + }, + "WaitTimeInMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.DeploymentStyle": { + "additionalProperties": false, + "properties": { + "DeploymentOption": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSet": { + "additionalProperties": false, + "properties": { + "Ec2TagSetList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.EC2TagSetListObject": { + "additionalProperties": false, + "properties": { + "Ec2TagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.EC2TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ECSService": { + "additionalProperties": false, + "properties": { + "ClusterName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "ServiceName" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.ELBInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GitHubLocation": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "required": [ + "CommitId", + "Repository" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.GreenFleetProvisioningOption": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.LoadBalancerInfo": { + "additionalProperties": false, + "properties": { + "ElbInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.ELBInfo" + }, + "type": "array" + }, + "TargetGroupInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + }, + "type": "array" + }, + "TargetGroupPairInfoList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupPairInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSet": { + "additionalProperties": false, + "properties": { + "OnPremisesTagSetList": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.OnPremisesTagSetListObject": { + "additionalProperties": false, + "properties": { + "OnPremisesTagGroup": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.RevisionLocation": { + "additionalProperties": false, + "properties": { + "GitHubLocation": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.GitHubLocation" + }, + "RevisionType": { + "type": "string" + }, + "S3Location": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.S3Location" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BundleType": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TargetGroupPairInfo": { + "additionalProperties": false, + "properties": { + "ProdTrafficRoute": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TrafficRoute" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TargetGroupInfo" + }, + "type": "array" + }, + "TestTrafficRoute": { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup.TrafficRoute" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TrafficRoute": { + "additionalProperties": false, + "properties": { + "ListenerArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CodeDeploy::DeploymentGroup.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TriggerName": { + "type": "string" + }, + "TriggerTargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodeGuruProfiler::ProfilingGroup": { + "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": { + "AgentPermissions": { + "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.AgentPermissions" + }, + "AnomalyDetectionNotificationConfiguration": { + "items": { + "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup.Channel" + }, + "type": "array" + }, + "ComputePlatform": { + "type": "string" + }, + "ProfilingGroupName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ProfilingGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeGuruProfiler::ProfilingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeGuruProfiler::ProfilingGroup.AgentPermissions": { + "additionalProperties": false, + "properties": { + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Principals" + ], + "type": "object" + }, + "AWS::CodeGuruProfiler::ProfilingGroup.Channel": { + "additionalProperties": false, + "properties": { + "channelId": { + "type": "string" + }, + "channelUri": { + "type": "string" + } + }, + "required": [ + "channelUri" + ], + "type": "object" + }, + "AWS::CodeGuruReviewer::RepositoryAssociation": { + "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": { + "BucketName": { + "type": "string" + }, + "ConnectionArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeGuruReviewer::RepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodePipeline::CustomActionType": { + "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": { + "Category": { + "type": "string" + }, + "ConfigurationProperties": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ConfigurationProperties" + }, + "type": "array" + }, + "InputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "OutputArtifactDetails": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.ArtifactDetails" + }, + "Provider": { + "type": "string" + }, + "Settings": { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType.Settings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Category", + "InputArtifactDetails", + "OutputArtifactDetails", + "Provider", + "Version" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodePipeline::CustomActionType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodePipeline::CustomActionType.ArtifactDetails": { + "additionalProperties": false, + "properties": { + "MaximumCount": { + "type": "number" + }, + "MinimumCount": { + "type": "number" + } + }, + "required": [ + "MaximumCount", + "MinimumCount" + ], + "type": "object" + }, + "AWS::CodePipeline::CustomActionType.ConfigurationProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Key": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Queryable": { + "type": "boolean" + }, + "Required": { + "type": "boolean" + }, + "Secret": { + "type": "boolean" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Key", + "Name", + "Required", + "Secret" + ], + "type": "object" + }, + "AWS::CodePipeline::CustomActionType.Settings": { + "additionalProperties": false, + "properties": { + "EntityUrlTemplate": { + "type": "string" + }, + "ExecutionUrlTemplate": { + "type": "string" + }, + "RevisionUrlTemplate": { + "type": "string" + }, + "ThirdPartyConfigurationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::Pipeline": { + "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": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "ArtifactStores": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStoreMap" + }, + "type": "array" + }, + "DisableInboundStageTransitions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageTransition" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RestartExecutionOnUpdate": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "Stages": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.StageDeclaration" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "RoleArn", + "Stages" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodePipeline::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ActionDeclaration": { + "additionalProperties": false, + "properties": { + "ActionTypeId": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionTypeId" + }, + "Configuration": { + "type": "object" + }, + "InputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.InputArtifact" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "OutputArtifacts": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.OutputArtifact" + }, + "type": "array" + }, + "Region": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "RunOrder": { + "type": "number" + } + }, + "required": [ + "ActionTypeId", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ActionTypeId": { + "additionalProperties": false, + "properties": { + "Category": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "Provider": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Category", + "Owner", + "Provider", + "Version" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStore": { + "additionalProperties": false, + "properties": { + "EncryptionKey": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.EncryptionKey" + }, + "Location": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Location", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.ArtifactStoreMap": { + "additionalProperties": false, + "properties": { + "ArtifactStore": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ArtifactStore" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "ArtifactStore", + "Region" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.BlockerDeclaration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.EncryptionKey": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.InputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.OutputArtifact": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageDeclaration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.ActionDeclaration" + }, + "type": "array" + }, + "Blockers": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline.BlockerDeclaration" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Actions", + "Name" + ], + "type": "object" + }, + "AWS::CodePipeline::Pipeline.StageTransition": { + "additionalProperties": false, + "properties": { + "Reason": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "required": [ + "Reason", + "StageName" + ], + "type": "object" + }, + "AWS::CodePipeline::Webhook": { + "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": { + "Authentication": { + "type": "string" + }, + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookAuthConfiguration" + }, + "Filters": { + "items": { + "$ref": "#/definitions/AWS::CodePipeline::Webhook.WebhookFilterRule" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RegisterWithThirdParty": { + "type": "boolean" + }, + "TargetAction": { + "type": "string" + }, + "TargetPipeline": { + "type": "string" + }, + "TargetPipelineVersion": { + "type": "number" + } + }, + "required": [ + "Authentication", + "AuthenticationConfiguration", + "Filters", + "TargetAction", + "TargetPipeline", + "TargetPipelineVersion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodePipeline::Webhook" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodePipeline::Webhook.WebhookAuthConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedIPRange": { + "type": "string" + }, + "SecretToken": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CodePipeline::Webhook.WebhookFilterRule": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "type": "string" + }, + "MatchEquals": { + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::CodeStar::GitHubRepository": { + "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": { + "Code": { + "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.Code" + }, + "ConnectionArn": { + "type": "string" + }, + "EnableIssues": { + "type": "boolean" + }, + "IsPrivate": { + "type": "boolean" + }, + "RepositoryAccessToken": { + "type": "string" + }, + "RepositoryDescription": { + "type": "string" + }, + "RepositoryName": { + "type": "string" + }, + "RepositoryOwner": { + "type": "string" + } + }, + "required": [ + "RepositoryName", + "RepositoryOwner" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeStar::GitHubRepository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeStar::GitHubRepository.Code": { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/AWS::CodeStar::GitHubRepository.S3" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "AWS::CodeStar::GitHubRepository.S3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::CodeStarConnections::Connection": { + "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": { + "ConnectionName": { + "type": "string" + }, + "HostArn": { + "type": "string" + }, + "ProviderType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ConnectionName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeStarConnections::Connection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeStarNotifications::NotificationRule": { + "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": { + "CreatedBy": { + "type": "string" + }, + "DetailType": { + "type": "string" + }, + "EventTypeId": { + "type": "string" + }, + "EventTypeIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Resource": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TargetAddress": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule.Target" + }, + "type": "array" + } + }, + "required": [ + "DetailType", + "EventTypeIds", + "Name", + "Resource", + "Targets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CodeStarNotifications::NotificationRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CodeStarNotifications::NotificationRule.Target": { + "additionalProperties": false, + "properties": { + "TargetAddress": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "TargetAddress", + "TargetType" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPool": { + "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": { + "AllowClassicFlow": { + "type": "boolean" + }, + "AllowUnauthenticatedIdentities": { + "type": "boolean" + }, + "CognitoEvents": { + "type": "object" + }, + "CognitoIdentityProviders": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoIdentityProvider" + }, + "type": "array" + }, + "CognitoStreams": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.CognitoStreams" + }, + "DeveloperProviderName": { + "type": "string" + }, + "IdentityPoolName": { + "type": "string" + }, + "OpenIdConnectProviderARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PushSync": { + "$ref": "#/definitions/AWS::Cognito::IdentityPool.PushSync" + }, + "SamlProviderARNs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SupportedLoginProviders": { + "type": "object" + } + }, + "required": [ + "AllowUnauthenticatedIdentities" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::IdentityPool" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPool.CognitoIdentityProvider": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "ServerSideTokenCheck": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.CognitoStreams": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + }, + "StreamingStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPool.PushSync": { + "additionalProperties": false, + "properties": { + "ApplicationArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment": { + "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": { + "IdentityPoolId": { + "type": "string" + }, + "RoleMappings": { + "type": "object" + }, + "Roles": { + "type": "object" + } + }, + "required": [ + "IdentityPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::IdentityPoolRoleAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.MappingRule": { + "additionalProperties": false, + "properties": { + "Claim": { + "type": "string" + }, + "MatchType": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Claim", + "MatchType", + "RoleARN", + "Value" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RoleMapping": { + "additionalProperties": false, + "properties": { + "AmbiguousRoleResolution": { + "type": "string" + }, + "IdentityProvider": { + "type": "string" + }, + "RulesConfiguration": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cognito::IdentityPoolRoleAttachment.RulesConfigurationType": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment.MappingRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::Cognito::UserPool": { + "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": { + "AccountRecoverySetting": { + "$ref": "#/definitions/AWS::Cognito::UserPool.AccountRecoverySetting" + }, + "AdminCreateUserConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.AdminCreateUserConfig" + }, + "AliasAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AutoVerifiedAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DeletionProtection": { + "type": "string" + }, + "DeviceConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.DeviceConfiguration" + }, + "EmailConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.EmailConfiguration" + }, + "EmailVerificationMessage": { + "type": "string" + }, + "EmailVerificationSubject": { + "type": "string" + }, + "EnabledMfas": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LambdaConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPool.LambdaConfig" + }, + "MfaConfiguration": { + "type": "string" + }, + "Policies": { + "$ref": "#/definitions/AWS::Cognito::UserPool.Policies" + }, + "Schema": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SchemaAttribute" + }, + "type": "array" + }, + "SmsAuthenticationMessage": { + "type": "string" + }, + "SmsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.SmsConfiguration" + }, + "SmsVerificationMessage": { + "type": "string" + }, + "UserAttributeUpdateSettings": { + "$ref": "#/definitions/AWS::Cognito::UserPool.UserAttributeUpdateSettings" + }, + "UserPoolAddOns": { + "$ref": "#/definitions/AWS::Cognito::UserPool.UserPoolAddOns" + }, + "UserPoolName": { + "type": "string" + }, + "UserPoolTags": { + "type": "object" + }, + "UsernameAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UsernameConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPool.UsernameConfiguration" + }, + "VerificationMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.VerificationMessageTemplate" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPool" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Cognito::UserPool.AccountRecoverySetting": { + "additionalProperties": false, + "properties": { + "RecoveryMechanisms": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPool.RecoveryOption" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.AdminCreateUserConfig": { + "additionalProperties": false, + "properties": { + "AllowAdminCreateUserOnly": { + "type": "boolean" + }, + "InviteMessageTemplate": { + "$ref": "#/definitions/AWS::Cognito::UserPool.InviteMessageTemplate" + }, + "UnusedAccountValidityDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.CustomEmailSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.CustomSMSSender": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "LambdaVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.DeviceConfiguration": { + "additionalProperties": false, + "properties": { + "ChallengeRequiredOnNewDevice": { + "type": "boolean" + }, + "DeviceOnlyRememberedOnUserPrompt": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.EmailConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationSet": { + "type": "string" + }, + "EmailSendingAccount": { + "type": "string" + }, + "From": { + "type": "string" + }, + "ReplyToEmailAddress": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.InviteMessageTemplate": { + "additionalProperties": false, + "properties": { + "EmailMessage": { + "type": "string" + }, + "EmailSubject": { + "type": "string" + }, + "SMSMessage": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.LambdaConfig": { + "additionalProperties": false, + "properties": { + "CreateAuthChallenge": { + "type": "string" + }, + "CustomEmailSender": { + "$ref": "#/definitions/AWS::Cognito::UserPool.CustomEmailSender" + }, + "CustomMessage": { + "type": "string" + }, + "CustomSMSSender": { + "$ref": "#/definitions/AWS::Cognito::UserPool.CustomSMSSender" + }, + "DefineAuthChallenge": { + "type": "string" + }, + "KMSKeyID": { + "type": "string" + }, + "PostAuthentication": { + "type": "string" + }, + "PostConfirmation": { + "type": "string" + }, + "PreAuthentication": { + "type": "string" + }, + "PreSignUp": { + "type": "string" + }, + "PreTokenGeneration": { + "type": "string" + }, + "UserMigration": { + "type": "string" + }, + "VerifyAuthChallengeResponse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.NumberAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "string" + }, + "MinValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.PasswordPolicy": { + "additionalProperties": false, + "properties": { + "MinimumLength": { + "type": "number" + }, + "RequireLowercase": { + "type": "boolean" + }, + "RequireNumbers": { + "type": "boolean" + }, + "RequireSymbols": { + "type": "boolean" + }, + "RequireUppercase": { + "type": "boolean" + }, + "TemporaryPasswordValidityDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.Policies": { + "additionalProperties": false, + "properties": { + "PasswordPolicy": { + "$ref": "#/definitions/AWS::Cognito::UserPool.PasswordPolicy" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.RecoveryOption": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Priority": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SchemaAttribute": { + "additionalProperties": false, + "properties": { + "AttributeDataType": { + "type": "string" + }, + "DeveloperOnlyAttribute": { + "type": "boolean" + }, + "Mutable": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "NumberAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.NumberAttributeConstraints" + }, + "Required": { + "type": "boolean" + }, + "StringAttributeConstraints": { + "$ref": "#/definitions/AWS::Cognito::UserPool.StringAttributeConstraints" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.SmsConfiguration": { + "additionalProperties": false, + "properties": { + "ExternalId": { + "type": "string" + }, + "SnsCallerArn": { + "type": "string" + }, + "SnsRegion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.StringAttributeConstraints": { + "additionalProperties": false, + "properties": { + "MaxLength": { + "type": "string" + }, + "MinLength": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.UserAttributeUpdateSettings": { + "additionalProperties": false, + "properties": { + "AttributesRequireVerificationBeforeUpdate": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AttributesRequireVerificationBeforeUpdate" + ], + "type": "object" + }, + "AWS::Cognito::UserPool.UserPoolAddOns": { + "additionalProperties": false, + "properties": { + "AdvancedSecurityMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.UsernameConfiguration": { + "additionalProperties": false, + "properties": { + "CaseSensitive": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPool.VerificationMessageTemplate": { + "additionalProperties": false, + "properties": { + "DefaultEmailOption": { + "type": "string" + }, + "EmailMessage": { + "type": "string" + }, + "EmailMessageByLink": { + "type": "string" + }, + "EmailSubject": { + "type": "string" + }, + "EmailSubjectByLink": { + "type": "string" + }, + "SmsMessage": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolClient": { + "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": { + "AccessTokenValidity": { + "type": "number" + }, + "AllowedOAuthFlows": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOAuthFlowsUserPoolClient": { + "type": "boolean" + }, + "AllowedOAuthScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AnalyticsConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolClient.AnalyticsConfiguration" + }, + "AuthSessionValidity": { + "type": "number" + }, + "CallbackURLs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClientName": { + "type": "string" + }, + "DefaultRedirectURI": { + "type": "string" + }, + "EnablePropagateAdditionalUserContextData": { + "type": "boolean" + }, + "EnableTokenRevocation": { + "type": "boolean" + }, + "ExplicitAuthFlows": { + "items": { + "type": "string" + }, + "type": "array" + }, + "GenerateSecret": { + "type": "boolean" + }, + "IdTokenValidity": { + "type": "number" + }, + "LogoutURLs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreventUserExistenceErrors": { + "type": "string" + }, + "ReadAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RefreshTokenValidity": { + "type": "number" + }, + "SupportedIdentityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TokenValidityUnits": { + "$ref": "#/definitions/AWS::Cognito::UserPoolClient.TokenValidityUnits" + }, + "UserPoolId": { + "type": "string" + }, + "WriteAttributes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolClient" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolClient.AnalyticsConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationArn": { + "type": "string" + }, + "ApplicationId": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserDataShared": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolClient.TokenValidityUnits": { + "additionalProperties": false, + "properties": { + "AccessToken": { + "type": "string" + }, + "IdToken": { + "type": "string" + }, + "RefreshToken": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolDomain": { + "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": { + "CustomDomainConfig": { + "$ref": "#/definitions/AWS::Cognito::UserPoolDomain.CustomDomainConfigType" + }, + "Domain": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "Domain", + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolDomain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolDomain.CustomDomainConfigType": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolGroup": { + "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": { + "Description": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Precedence": { + "type": "number" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolIdentityProvider": { + "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": { + "AttributeMapping": { + "type": "object" + }, + "IdpIdentifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ProviderDetails": { + "type": "object" + }, + "ProviderName": { + "type": "string" + }, + "ProviderType": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "ProviderName", + "ProviderType", + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolIdentityProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolResourceServer": { + "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": { + "Identifier": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scopes": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType" + }, + "type": "array" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "Identifier", + "Name", + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolResourceServer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolResourceServer.ResourceServerScopeType": { + "additionalProperties": false, + "properties": { + "ScopeDescription": { + "type": "string" + }, + "ScopeName": { + "type": "string" + } + }, + "required": [ + "ScopeDescription", + "ScopeName" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment": { + "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": { + "AccountTakeoverRiskConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType" + }, + "ClientId": { + "type": "string" + }, + "CompromisedCredentialsRiskConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType" + }, + "RiskExceptionConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "ClientId", + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolRiskConfigurationAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType": { + "additionalProperties": false, + "properties": { + "EventAction": { + "type": "string" + }, + "Notify": { + "type": "boolean" + } + }, + "required": [ + "EventAction", + "Notify" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType": { + "additionalProperties": false, + "properties": { + "HighAction": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType" + }, + "LowAction": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType" + }, + "MediumAction": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionType" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.AccountTakeoverActionsType" + }, + "NotifyConfiguration": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType" + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType": { + "additionalProperties": false, + "properties": { + "EventAction": { + "type": "string" + } + }, + "required": [ + "EventAction" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsRiskConfigurationType": { + "additionalProperties": false, + "properties": { + "Actions": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.CompromisedCredentialsActionsType" + }, + "EventFilter": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockEmail": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType" + }, + "From": { + "type": "string" + }, + "MfaEmail": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType" + }, + "NoActionEmail": { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType" + }, + "ReplyTo": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "required": [ + "SourceArn" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.NotifyEmailType": { + "additionalProperties": false, + "properties": { + "HtmlBody": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "TextBody": { + "type": "string" + } + }, + "required": [ + "Subject" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolRiskConfigurationAttachment.RiskExceptionConfigurationType": { + "additionalProperties": false, + "properties": { + "BlockedIPRangeList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SkippedIPRangeList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolUICustomizationAttachment": { + "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": { + "CSS": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "required": [ + "ClientId", + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolUICustomizationAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolUser": { + "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": { + "ClientMetadata": { + "type": "object" + }, + "DesiredDeliveryMediums": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ForceAliasCreation": { + "type": "boolean" + }, + "MessageAction": { + "type": "string" + }, + "UserAttributes": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" + }, + "type": "array" + }, + "UserPoolId": { + "type": "string" + }, + "Username": { + "type": "string" + }, + "ValidationData": { + "items": { + "$ref": "#/definitions/AWS::Cognito::UserPoolUser.AttributeType" + }, + "type": "array" + } + }, + "required": [ + "UserPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolUser" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Cognito::UserPoolUser.AttributeType": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Cognito::UserPoolUserToGroupAttachment": { + "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": { + "GroupName": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "GroupName", + "UserPoolId", + "Username" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Cognito::UserPoolUserToGroupAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::AggregationAuthorization": { + "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": { + "AuthorizedAccountId": { + "type": "string" + }, + "AuthorizedAwsRegion": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AuthorizedAccountId", + "AuthorizedAwsRegion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::AggregationAuthorization" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::ConfigRule": { + "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": { + "ConfigRuleName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "InputParameters": { + "type": "object" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "Scope": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Scope" + }, + "Source": { + "$ref": "#/definitions/AWS::Config::ConfigRule.Source" + } + }, + "required": [ + "Source" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::ConfigRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::ConfigRule.CustomPolicyDetails": { + "additionalProperties": false, + "properties": { + "EnableDebugLogDelivery": { + "type": "boolean" + }, + "PolicyRuntime": { + "type": "string" + }, + "PolicyText": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::ConfigRule.Scope": { + "additionalProperties": false, + "properties": { + "ComplianceResourceId": { + "type": "string" + }, + "ComplianceResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TagKey": { + "type": "string" + }, + "TagValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::ConfigRule.Source": { + "additionalProperties": false, + "properties": { + "CustomPolicyDetails": { + "$ref": "#/definitions/AWS::Config::ConfigRule.CustomPolicyDetails" + }, + "Owner": { + "type": "string" + }, + "SourceDetails": { + "items": { + "$ref": "#/definitions/AWS::Config::ConfigRule.SourceDetail" + }, + "type": "array" + }, + "SourceIdentifier": { + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "AWS::Config::ConfigRule.SourceDetail": { + "additionalProperties": false, + "properties": { + "EventSource": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "MessageType": { + "type": "string" + } + }, + "required": [ + "EventSource", + "MessageType" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator": { + "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": { + "AccountAggregationSources": { + "items": { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.AccountAggregationSource" + }, + "type": "array" + }, + "ConfigurationAggregatorName": { + "type": "string" + }, + "OrganizationAggregationSource": { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator.OrganizationAggregationSource" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::ConfigurationAggregator" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator.AccountAggregationSource": { + "additionalProperties": false, + "properties": { + "AccountIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllAwsRegions": { + "type": "boolean" + }, + "AwsRegions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AccountIds" + ], + "type": "object" + }, + "AWS::Config::ConfigurationAggregator.OrganizationAggregationSource": { + "additionalProperties": false, + "properties": { + "AllAwsRegions": { + "type": "boolean" + }, + "AwsRegions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Config::ConfigurationRecorder": { + "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": { + "Name": { + "type": "string" + }, + "RecordingGroup": { + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder.RecordingGroup" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "RoleARN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::ConfigurationRecorder" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::ConfigurationRecorder.RecordingGroup": { + "additionalProperties": false, + "properties": { + "AllSupported": { + "type": "boolean" + }, + "IncludeGlobalResourceTypes": { + "type": "boolean" + }, + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Config::ConformancePack": { + "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": { + "ConformancePackInputParameters": { + "items": { + "$ref": "#/definitions/AWS::Config::ConformancePack.ConformancePackInputParameter" + }, + "type": "array" + }, + "ConformancePackName": { + "type": "string" + }, + "DeliveryS3Bucket": { + "type": "string" + }, + "DeliveryS3KeyPrefix": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateS3Uri": { + "type": "string" + }, + "TemplateSSMDocumentDetails": { + "$ref": "#/definitions/AWS::Config::ConformancePack.TemplateSSMDocumentDetails" + } + }, + "required": [ + "ConformancePackName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::ConformancePack" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::ConformancePack.ConformancePackInputParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterName", + "ParameterValue" + ], + "type": "object" + }, + "AWS::Config::ConformancePack.TemplateSSMDocumentDetails": { + "additionalProperties": false, + "properties": { + "DocumentName": { + "type": "string" + }, + "DocumentVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::DeliveryChannel": { + "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": { + "ConfigSnapshotDeliveryProperties": { + "$ref": "#/definitions/AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties" + }, + "Name": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + }, + "S3KmsKeyArn": { + "type": "string" + }, + "SnsTopicARN": { + "type": "string" + } + }, + "required": [ + "S3BucketName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::DeliveryChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::DeliveryChannel.ConfigSnapshotDeliveryProperties": { + "additionalProperties": false, + "properties": { + "DeliveryFrequency": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::OrganizationConfigRule": { + "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": { + "ExcludedAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationConfigRuleName": { + "type": "string" + }, + "OrganizationCustomCodeRuleMetadata": { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomCodeRuleMetadata" + }, + "OrganizationCustomRuleMetadata": { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata" + }, + "OrganizationManagedRuleMetadata": { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata" + } + }, + "required": [ + "OrganizationConfigRuleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::OrganizationConfigRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::OrganizationConfigRule.OrganizationCustomCodeRuleMetadata": { + "additionalProperties": false, + "properties": { + "CodeText": { + "type": "string" + }, + "DebugLogDeliveryAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InputParameters": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "OrganizationConfigRuleTriggerTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceIdScope": { + "type": "string" + }, + "ResourceTypesScope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Runtime": { + "type": "string" + }, + "TagKeyScope": { + "type": "string" + }, + "TagValueScope": { + "type": "string" + } + }, + "required": [ + "CodeText", + "Runtime" + ], + "type": "object" + }, + "AWS::Config::OrganizationConfigRule.OrganizationCustomRuleMetadata": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "InputParameters": { + "type": "string" + }, + "LambdaFunctionArn": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "OrganizationConfigRuleTriggerTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceIdScope": { + "type": "string" + }, + "ResourceTypesScope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TagKeyScope": { + "type": "string" + }, + "TagValueScope": { + "type": "string" + } + }, + "required": [ + "LambdaFunctionArn", + "OrganizationConfigRuleTriggerTypes" + ], + "type": "object" + }, + "AWS::Config::OrganizationConfigRule.OrganizationManagedRuleMetadata": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "InputParameters": { + "type": "string" + }, + "MaximumExecutionFrequency": { + "type": "string" + }, + "ResourceIdScope": { + "type": "string" + }, + "ResourceTypesScope": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RuleIdentifier": { + "type": "string" + }, + "TagKeyScope": { + "type": "string" + }, + "TagValueScope": { + "type": "string" + } + }, + "required": [ + "RuleIdentifier" + ], + "type": "object" + }, + "AWS::Config::OrganizationConformancePack": { + "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": { + "ConformancePackInputParameters": { + "items": { + "$ref": "#/definitions/AWS::Config::OrganizationConformancePack.ConformancePackInputParameter" + }, + "type": "array" + }, + "DeliveryS3Bucket": { + "type": "string" + }, + "DeliveryS3KeyPrefix": { + "type": "string" + }, + "ExcludedAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationConformancePackName": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateS3Uri": { + "type": "string" + } + }, + "required": [ + "OrganizationConformancePackName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::OrganizationConformancePack" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::OrganizationConformancePack.ConformancePackInputParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterName", + "ParameterValue" + ], + "type": "object" + }, + "AWS::Config::RemediationConfiguration": { + "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": { + "Automatic": { + "type": "boolean" + }, + "ConfigRuleName": { + "type": "string" + }, + "ExecutionControls": { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ExecutionControls" + }, + "MaximumAutomaticAttempts": { + "type": "number" + }, + "Parameters": { + "type": "object" + }, + "ResourceType": { + "type": "string" + }, + "RetryAttemptSeconds": { + "type": "number" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + }, + "TargetVersion": { + "type": "string" + } + }, + "required": [ + "ConfigRuleName", + "TargetId", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::RemediationConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Config::RemediationConfiguration.ExecutionControls": { + "additionalProperties": false, + "properties": { + "SsmControls": { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.SsmControls" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.RemediationParameterValue": { + "additionalProperties": false, + "properties": { + "ResourceValue": { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.ResourceValue" + }, + "StaticValue": { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration.StaticValue" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.ResourceValue": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.SsmControls": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutionRatePercentage": { + "type": "number" + }, + "ErrorPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Config::RemediationConfiguration.StaticValue": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Config::StoredQuery": { + "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": { + "QueryDescription": { + "type": "string" + }, + "QueryExpression": { + "type": "string" + }, + "QueryName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "QueryExpression", + "QueryName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Config::StoredQuery" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::ContactFlow": { + "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": { + "Content": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Content", + "InstanceArn", + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::ContactFlow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::ContactFlowModule": { + "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": { + "Content": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Content", + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::ContactFlowModule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation": { + "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": { + "Config": { + "items": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationConfig" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeZone": { + "type": "string" + } + }, + "required": [ + "Config", + "InstanceArn", + "Name", + "TimeZone" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::HoursOfOperation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationConfig": { + "additionalProperties": false, + "properties": { + "Day": { + "type": "string" + }, + "EndTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + }, + "StartTime": { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice" + } + }, + "required": [ + "Day", + "EndTime", + "StartTime" + ], + "type": "object" + }, + "AWS::Connect::HoursOfOperation.HoursOfOperationTimeSlice": { + "additionalProperties": false, + "properties": { + "Hours": { + "type": "number" + }, + "Minutes": { + "type": "number" + } + }, + "required": [ + "Hours", + "Minutes" + ], + "type": "object" + }, + "AWS::Connect::Instance": { + "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": { + "Attributes": { + "$ref": "#/definitions/AWS::Connect::Instance.Attributes" + }, + "DirectoryId": { + "type": "string" + }, + "IdentityManagementType": { + "type": "string" + }, + "InstanceAlias": { + "type": "string" + } + }, + "required": [ + "Attributes", + "IdentityManagementType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Instance.Attributes": { + "additionalProperties": false, + "properties": { + "AutoResolveBestVoices": { + "type": "boolean" + }, + "ContactLens": { + "type": "boolean" + }, + "ContactflowLogs": { + "type": "boolean" + }, + "EarlyMedia": { + "type": "boolean" + }, + "InboundCalls": { + "type": "boolean" + }, + "OutboundCalls": { + "type": "boolean" + }, + "UseCustomTTSVoices": { + "type": "boolean" + } + }, + "required": [ + "InboundCalls", + "OutboundCalls" + ], + "type": "object" + }, + "AWS::Connect::InstanceStorageConfig": { + "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": { + "InstanceArn": { + "type": "string" + }, + "KinesisFirehoseConfig": { + "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.KinesisFirehoseConfig" + }, + "KinesisStreamConfig": { + "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.KinesisStreamConfig" + }, + "KinesisVideoStreamConfig": { + "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.KinesisVideoStreamConfig" + }, + "ResourceType": { + "type": "string" + }, + "S3Config": { + "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.S3Config" + }, + "StorageType": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "ResourceType", + "StorageType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::InstanceStorageConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::InstanceStorageConfig.EncryptionConfig": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KeyId": { + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "AWS::Connect::InstanceStorageConfig.KinesisFirehoseConfig": { + "additionalProperties": false, + "properties": { + "FirehoseArn": { + "type": "string" + } + }, + "required": [ + "FirehoseArn" + ], + "type": "object" + }, + "AWS::Connect::InstanceStorageConfig.KinesisStreamConfig": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "AWS::Connect::InstanceStorageConfig.KinesisVideoStreamConfig": { + "additionalProperties": false, + "properties": { + "EncryptionConfig": { + "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.EncryptionConfig" + }, + "Prefix": { + "type": "string" + }, + "RetentionPeriodHours": { + "type": "number" + } + }, + "required": [ + "Prefix", + "RetentionPeriodHours" + ], + "type": "object" + }, + "AWS::Connect::InstanceStorageConfig.S3Config": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "EncryptionConfig": { + "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig.EncryptionConfig" + } + }, + "required": [ + "BucketName", + "BucketPrefix" + ], + "type": "object" + }, + "AWS::Connect::PhoneNumber": { + "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": { + "CountryCode": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "CountryCode", + "TargetArn", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::PhoneNumber" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect": { + "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": { + "Description": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "QuickConnectConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QuickConnectConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceArn", + "Name", + "QuickConnectConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::QuickConnect" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneNumber": { + "type": "string" + } + }, + "required": [ + "PhoneNumber" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QueueQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "QueueArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "QueueArn" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.QuickConnectConfig": { + "additionalProperties": false, + "properties": { + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.PhoneNumberQuickConnectConfig" + }, + "QueueConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.QueueQuickConnectConfig" + }, + "QuickConnectType": { + "type": "string" + }, + "UserConfig": { + "$ref": "#/definitions/AWS::Connect::QuickConnect.UserQuickConnectConfig" + } + }, + "required": [ + "QuickConnectType" + ], + "type": "object" + }, + "AWS::Connect::QuickConnect.UserQuickConnectConfig": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "UserArn": { + "type": "string" + } + }, + "required": [ + "ContactFlowArn", + "UserArn" + ], + "type": "object" + }, + "AWS::Connect::Rule": { + "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": { + "Actions": { + "$ref": "#/definitions/AWS::Connect::Rule.Actions" + }, + "Function": { + "type": "string" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PublishStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TriggerEventSource": { + "$ref": "#/definitions/AWS::Connect::Rule.RuleTriggerEventSource" + } + }, + "required": [ + "Actions", + "Function", + "InstanceArn", + "Name", + "PublishStatus", + "TriggerEventSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::Rule.Actions": { + "additionalProperties": false, + "properties": { + "AssignContactCategoryActions": { + "items": { + "type": "object" + }, + "type": "array" + }, + "EventBridgeActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.EventBridgeAction" + }, + "type": "array" + }, + "SendNotificationActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.SendNotificationAction" + }, + "type": "array" + }, + "TaskActions": { + "items": { + "$ref": "#/definitions/AWS::Connect::Rule.TaskAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.EventBridgeAction": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::Rule.NotificationRecipientType": { + "additionalProperties": false, + "properties": { + "UserArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Connect::Rule.Reference": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Connect::Rule.RuleTriggerEventSource": { + "additionalProperties": false, + "properties": { + "EventSourceName": { + "type": "string" + }, + "IntegrationAssociationArn": { + "type": "string" + } + }, + "required": [ + "EventSourceName" + ], + "type": "object" + }, + "AWS::Connect::Rule.SendNotificationAction": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DeliveryMethod": { + "type": "string" + }, + "Recipient": { + "$ref": "#/definitions/AWS::Connect::Rule.NotificationRecipientType" + }, + "Subject": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType", + "DeliveryMethod", + "Recipient" + ], + "type": "object" + }, + "AWS::Connect::Rule.TaskAction": { + "additionalProperties": false, + "properties": { + "ContactFlowArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "References": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Connect::Rule.Reference" + } + }, + "type": "object" + } + }, + "required": [ + "ContactFlowArn", + "Name" + ], + "type": "object" + }, + "AWS::Connect::TaskTemplate": { + "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": { + "ClientToken": { + "type": "string" + }, + "Constraints": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.Constraints" + }, + "ContactFlowArn": { + "type": "string" + }, + "Defaults": { + "items": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.DefaultFieldValue" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Fields": { + "items": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.Field" + }, + "type": "array" + }, + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::TaskTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::TaskTemplate.Constraints": { + "additionalProperties": false, + "properties": { + "InvisibleFields": { + "items": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.InvisibleFieldInfo" + }, + "type": "array" + }, + "ReadOnlyFields": { + "items": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.ReadOnlyFieldInfo" + }, + "type": "array" + }, + "RequiredFields": { + "items": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.RequiredFieldInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Connect::TaskTemplate.DefaultFieldValue": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + }, + "Id": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier" + } + }, + "required": [ + "DefaultValue", + "Id" + ], + "type": "object" + }, + "AWS::Connect::TaskTemplate.Field": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Id": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier" + }, + "SingleSelectOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "Type" + ], + "type": "object" + }, + "AWS::Connect::TaskTemplate.FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Connect::TaskTemplate.InvisibleFieldInfo": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::Connect::TaskTemplate.ReadOnlyFieldInfo": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::Connect::TaskTemplate.RequiredFieldInfo": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/AWS::Connect::TaskTemplate.FieldIdentifier" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::Connect::User": { + "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": { + "DirectoryUserId": { + "type": "string" + }, + "HierarchyGroupArn": { + "type": "string" + }, + "IdentityInfo": { + "$ref": "#/definitions/AWS::Connect::User.UserIdentityInfo" + }, + "InstanceArn": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "PhoneConfig": { + "$ref": "#/definitions/AWS::Connect::User.UserPhoneConfig" + }, + "RoutingProfileArn": { + "type": "string" + }, + "SecurityProfileArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "PhoneConfig", + "RoutingProfileArn", + "SecurityProfileArns", + "Username" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Connect::User.UserIdentityInfo": { + "additionalProperties": false, + "properties": { + "Email": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + }, + "Mobile": { + "type": "string" + }, + "SecondaryEmail": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Connect::User.UserPhoneConfig": { + "additionalProperties": false, + "properties": { + "AfterContactWorkTimeLimit": { + "type": "number" + }, + "AutoAccept": { + "type": "boolean" + }, + "DeskPhoneNumber": { + "type": "string" + }, + "PhoneType": { + "type": "string" + } + }, + "required": [ + "PhoneType" + ], + "type": "object" + }, + "AWS::Connect::UserHierarchyGroup": { + "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": { + "InstanceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParentGroupArn": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Connect::UserHierarchyGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ConnectCampaigns::Campaign": { + "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": { + "ConnectInstanceArn": { + "type": "string" + }, + "DialerConfig": { + "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.DialerConfig" + }, + "Name": { + "type": "string" + }, + "OutboundCallConfig": { + "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.OutboundCallConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ConnectInstanceArn", + "DialerConfig", + "Name", + "OutboundCallConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ConnectCampaigns::Campaign" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ConnectCampaigns::Campaign.DialerConfig": { + "additionalProperties": false, + "properties": { + "PredictiveDialerConfig": { + "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.PredictiveDialerConfig" + }, + "ProgressiveDialerConfig": { + "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign.ProgressiveDialerConfig" + } + }, + "type": "object" + }, + "AWS::ConnectCampaigns::Campaign.OutboundCallConfig": { + "additionalProperties": false, + "properties": { + "ConnectContactFlowArn": { + "type": "string" + }, + "ConnectQueueArn": { + "type": "string" + }, + "ConnectSourcePhoneNumber": { + "type": "string" + } + }, + "required": [ + "ConnectContactFlowArn", + "ConnectQueueArn" + ], + "type": "object" + }, + "AWS::ConnectCampaigns::Campaign.PredictiveDialerConfig": { + "additionalProperties": false, + "properties": { + "BandwidthAllocation": { + "type": "number" + } + }, + "required": [ + "BandwidthAllocation" + ], + "type": "object" + }, + "AWS::ConnectCampaigns::Campaign.ProgressiveDialerConfig": { + "additionalProperties": false, + "properties": { + "BandwidthAllocation": { + "type": "number" + } + }, + "required": [ + "BandwidthAllocation" + ], + "type": "object" + }, + "AWS::ControlTower::EnabledControl": { + "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": { + "ControlIdentifier": { + "type": "string" + }, + "TargetIdentifier": { + "type": "string" + } + }, + "required": [ + "ControlIdentifier", + "TargetIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ControlTower::EnabledControl" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Domain": { + "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": { + "DeadLetterQueueUrl": { + "type": "string" + }, + "DefaultEncryptionKey": { + "type": "string" + }, + "DefaultExpirationDays": { + "type": "number" + }, + "DomainName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CustomerProfiles::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration": { + "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": { + "DomainName": { + "type": "string" + }, + "FlowDefinition": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.FlowDefinition" + }, + "ObjectTypeName": { + "type": "string" + }, + "ObjectTypeNames": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ObjectTypeMapping" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Uri": { + "type": "string" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CustomerProfiles::Integration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ConnectorOperator": { + "additionalProperties": false, + "properties": { + "Marketo": { + "type": "string" + }, + "S3": { + "type": "string" + }, + "Salesforce": { + "type": "string" + }, + "ServiceNow": { + "type": "string" + }, + "Zendesk": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.FlowDefinition": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "FlowName": { + "type": "string" + }, + "KmsArn": { + "type": "string" + }, + "SourceFlowConfig": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceFlowConfig" + }, + "Tasks": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.Task" + }, + "type": "array" + }, + "TriggerConfig": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerConfig" + } + }, + "required": [ + "FlowName", + "KmsArn", + "SourceFlowConfig", + "Tasks", + "TriggerConfig" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.IncrementalPullConfig": { + "additionalProperties": false, + "properties": { + "DatetimeTypeFieldName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.MarketoSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ObjectTypeMapping": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.S3SourceProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.SalesforceSourceProperties": { + "additionalProperties": false, + "properties": { + "EnableDynamicFieldUpdate": { + "type": "boolean" + }, + "IncludeDeletedRecords": { + "type": "boolean" + }, + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ScheduledTriggerProperties": { + "additionalProperties": false, + "properties": { + "DataPullMode": { + "type": "string" + }, + "FirstExecutionFrom": { + "type": "number" + }, + "ScheduleEndTime": { + "type": "number" + }, + "ScheduleExpression": { + "type": "string" + }, + "ScheduleOffset": { + "type": "number" + }, + "ScheduleStartTime": { + "type": "number" + }, + "Timezone": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ServiceNowSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.SourceConnectorProperties": { + "additionalProperties": false, + "properties": { + "Marketo": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.MarketoSourceProperties" + }, + "S3": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.S3SourceProperties" + }, + "Salesforce": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SalesforceSourceProperties" + }, + "ServiceNow": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ServiceNowSourceProperties" + }, + "Zendesk": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ZendeskSourceProperties" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.SourceFlowConfig": { + "additionalProperties": false, + "properties": { + "ConnectorProfileName": { + "type": "string" + }, + "ConnectorType": { + "type": "string" + }, + "IncrementalPullConfig": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.IncrementalPullConfig" + }, + "SourceConnectorProperties": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.SourceConnectorProperties" + } + }, + "required": [ + "ConnectorType", + "SourceConnectorProperties" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.Task": { + "additionalProperties": false, + "properties": { + "ConnectorOperator": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ConnectorOperator" + }, + "DestinationField": { + "type": "string" + }, + "SourceFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TaskProperties": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TaskPropertiesMap" + }, + "type": "array" + }, + "TaskType": { + "type": "string" + } + }, + "required": [ + "SourceFields", + "TaskType" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.TaskPropertiesMap": { + "additionalProperties": false, + "properties": { + "OperatorPropertyKey": { + "type": "string" + }, + "Property": { + "type": "string" + } + }, + "required": [ + "OperatorPropertyKey", + "Property" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.TriggerConfig": { + "additionalProperties": false, + "properties": { + "TriggerProperties": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.TriggerProperties" + }, + "TriggerType": { + "type": "string" + } + }, + "required": [ + "TriggerType" + ], + "type": "object" + }, + "AWS::CustomerProfiles::Integration.TriggerProperties": { + "additionalProperties": false, + "properties": { + "Scheduled": { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration.ScheduledTriggerProperties" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::Integration.ZendeskSourceProperties": { + "additionalProperties": false, + "properties": { + "Object": { + "type": "string" + } + }, + "required": [ + "Object" + ], + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType": { + "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": { + "AllowProfileCreation": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "EncryptionKey": { + "type": "string" + }, + "ExpirationDays": { + "type": "number" + }, + "Fields": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.FieldMap" + }, + "type": "array" + }, + "Keys": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.KeyMap" + }, + "type": "array" + }, + "ObjectTypeName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateId": { + "type": "string" + } + }, + "required": [ + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::CustomerProfiles::ObjectType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType.FieldMap": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ObjectTypeField": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeField" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType.KeyMap": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ObjectTypeKeyList": { + "items": { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType.ObjectTypeKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType.ObjectTypeField": { + "additionalProperties": false, + "properties": { + "ContentType": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "Target": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::CustomerProfiles::ObjectType.ObjectTypeKey": { + "additionalProperties": false, + "properties": { + "FieldNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StandardIdentifiers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DAX::Cluster": { + "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": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterEndpointEncryptionType": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IAMRoleARN": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NotificationTopicARN": { + "type": "string" + }, + "ParameterGroupName": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ReplicationFactor": { + "type": "number" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DAX::Cluster.SSESpecification" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetGroupName": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "IAMRoleARN", + "NodeType", + "ReplicationFactor" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DAX::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DAX::Cluster.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DAX::ParameterGroup": { + "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": { + "Description": { + "type": "string" + }, + "ParameterGroupName": { + "type": "string" + }, + "ParameterNameValues": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DAX::ParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DAX::SubnetGroup": { + "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": { + "Description": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DAX::SubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy": { + "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": { + "Description": { + "type": "string" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "PolicyDetails": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.PolicyDetails" + }, + "State": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DLM::LifecyclePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.Action": { + "additionalProperties": false, + "properties": { + "CrossRegionCopy": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyAction" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CrossRegionCopy", + "Name" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.ArchiveRetainRule": { + "additionalProperties": false, + "properties": { + "RetentionArchiveTier": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetentionArchiveTier" + } + }, + "required": [ + "RetentionArchiveTier" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.ArchiveRule": { + "additionalProperties": false, + "properties": { + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ArchiveRetainRule" + } + }, + "required": [ + "RetainRule" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CreateRule": { + "additionalProperties": false, + "properties": { + "CronExpression": { + "type": "string" + }, + "Interval": { + "type": "number" + }, + "IntervalUnit": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "Times": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyAction": { + "additionalProperties": false, + "properties": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EncryptionConfiguration" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "EncryptionConfiguration", + "Target" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule": { + "additionalProperties": false, + "properties": { + "Interval": { + "type": "number" + }, + "IntervalUnit": { + "type": "string" + } + }, + "required": [ + "Interval", + "IntervalUnit" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule": { + "additionalProperties": false, + "properties": { + "Interval": { + "type": "number" + }, + "IntervalUnit": { + "type": "string" + } + }, + "required": [ + "Interval", + "IntervalUnit" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.CrossRegionCopyRule": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "type": "string" + }, + "CopyTags": { + "type": "boolean" + }, + "DeprecateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyDeprecateRule" + }, + "Encrypted": { + "type": "boolean" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRetainRule" + }, + "Target": { + "type": "string" + }, + "TargetRegion": { + "type": "string" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.DeprecateRule": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + }, + "Interval": { + "type": "number" + }, + "IntervalUnit": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CmkArn": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + } + }, + "required": [ + "Encrypted" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventParameters": { + "additionalProperties": false, + "properties": { + "DescriptionRegex": { + "type": "string" + }, + "EventType": { + "type": "string" + }, + "SnapshotOwner": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EventType", + "SnapshotOwner" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.EventSource": { + "additionalProperties": false, + "properties": { + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventParameters" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.FastRestoreRule": { + "additionalProperties": false, + "properties": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Count": { + "type": "number" + }, + "Interval": { + "type": "number" + }, + "IntervalUnit": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.Parameters": { + "additionalProperties": false, + "properties": { + "ExcludeBootVolume": { + "type": "boolean" + }, + "ExcludeDataVolumeTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "NoReboot": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.PolicyDetails": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Action" + }, + "type": "array" + }, + "EventSource": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.EventSource" + }, + "Parameters": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Parameters" + }, + "PolicyType": { + "type": "string" + }, + "ResourceLocations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Schedules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.Schedule" + }, + "type": "array" + }, + "TargetTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.RetainRule": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + }, + "Interval": { + "type": "number" + }, + "IntervalUnit": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.RetentionArchiveTier": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + }, + "Interval": { + "type": "number" + }, + "IntervalUnit": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.Schedule": { + "additionalProperties": false, + "properties": { + "ArchiveRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ArchiveRule" + }, + "CopyTags": { + "type": "boolean" + }, + "CreateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CreateRule" + }, + "CrossRegionCopyRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.CrossRegionCopyRule" + }, + "type": "array" + }, + "DeprecateRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.DeprecateRule" + }, + "FastRestoreRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.FastRestoreRule" + }, + "Name": { + "type": "string" + }, + "RetainRule": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.RetainRule" + }, + "ShareRules": { + "items": { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy.ShareRule" + }, + "type": "array" + }, + "TagsToAdd": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VariableTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DLM::LifecyclePolicy.ShareRule": { + "additionalProperties": false, + "properties": { + "TargetAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UnshareInterval": { + "type": "number" + }, + "UnshareIntervalUnit": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Certificate": { + "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": { + "CertificateIdentifier": { + "type": "string" + }, + "CertificatePem": { + "type": "string" + }, + "CertificateWallet": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DMS::Endpoint": { + "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": { + "CertificateArn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DocDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DocDbSettings" + }, + "DynamoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.DynamoDbSettings" + }, + "ElasticsearchSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.ElasticsearchSettings" + }, + "EndpointIdentifier": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "EngineName": { + "type": "string" + }, + "ExtraConnectionAttributes": { + "type": "string" + }, + "GcpMySQLSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.GcpMySQLSettings" + }, + "IbmDb2Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.IbmDb2Settings" + }, + "KafkaSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KafkaSettings" + }, + "KinesisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.KinesisSettings" + }, + "KmsKeyId": { + "type": "string" + }, + "MicrosoftSqlServerSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MicrosoftSqlServerSettings" + }, + "MongoDbSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MongoDbSettings" + }, + "MySqlSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.MySqlSettings" + }, + "NeptuneSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.NeptuneSettings" + }, + "OracleSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.OracleSettings" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PostgreSqlSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.PostgreSqlSettings" + }, + "RedisSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedisSettings" + }, + "RedshiftSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.RedshiftSettings" + }, + "ResourceIdentifier": { + "type": "string" + }, + "S3Settings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.S3Settings" + }, + "ServerName": { + "type": "string" + }, + "SslMode": { + "type": "string" + }, + "SybaseSettings": { + "$ref": "#/definitions/AWS::DMS::Endpoint.SybaseSettings" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "EndpointType", + "EngineName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::Endpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DMS::Endpoint.DocDbSettings": { + "additionalProperties": false, + "properties": { + "DocsToInvestigate": { + "type": "number" + }, + "ExtractDocId": { + "type": "boolean" + }, + "NestingLevel": { + "type": "string" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.DynamoDbSettings": { + "additionalProperties": false, + "properties": { + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.ElasticsearchSettings": { + "additionalProperties": false, + "properties": { + "EndpointUri": { + "type": "string" + }, + "ErrorRetryDuration": { + "type": "number" + }, + "FullLoadErrorPercentage": { + "type": "number" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.GcpMySQLSettings": { + "additionalProperties": false, + "properties": { + "AfterConnectScript": { + "type": "string" + }, + "CleanSourceMetadataOnMismatch": { + "type": "boolean" + }, + "DatabaseName": { + "type": "string" + }, + "EventsPollInterval": { + "type": "number" + }, + "MaxFileSize": { + "type": "number" + }, + "ParallelLoadThreads": { + "type": "number" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "ServerName": { + "type": "string" + }, + "ServerTimezone": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.IbmDb2Settings": { + "additionalProperties": false, + "properties": { + "CurrentLsn": { + "type": "string" + }, + "MaxKBytesPerRead": { + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "SetDataCaptureChanges": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KafkaSettings": { + "additionalProperties": false, + "properties": { + "Broker": { + "type": "string" + }, + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludePartitionValue": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, + "MessageFormat": { + "type": "string" + }, + "MessageMaxBytes": { + "type": "number" + }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, + "SaslPassword": { + "type": "string" + }, + "SaslUserName": { + "type": "string" + }, + "SecurityProtocol": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslClientCertificateArn": { + "type": "string" + }, + "SslClientKeyArn": { + "type": "string" + }, + "SslClientKeyPassword": { + "type": "string" + }, + "Topic": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.KinesisSettings": { + "additionalProperties": false, + "properties": { + "IncludeControlDetails": { + "type": "boolean" + }, + "IncludeNullAndEmpty": { + "type": "boolean" + }, + "IncludePartitionValue": { + "type": "boolean" + }, + "IncludeTableAlterOperations": { + "type": "boolean" + }, + "IncludeTransactionDetails": { + "type": "boolean" + }, + "MessageFormat": { + "type": "string" + }, + "NoHexPrefix": { + "type": "boolean" + }, + "PartitionIncludeSchemaTable": { + "type": "boolean" + }, + "ServiceAccessRoleArn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MicrosoftSqlServerSettings": { + "additionalProperties": false, + "properties": { + "BcpPacketSize": { + "type": "number" + }, + "ControlTablesFileGroup": { + "type": "string" + }, + "QuerySingleAlwaysOnNode": { + "type": "boolean" + }, + "ReadBackupOnly": { + "type": "boolean" + }, + "SafeguardPolicy": { + "type": "string" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "UseBcpFullLoad": { + "type": "boolean" + }, + "UseThirdPartyBackupDevice": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MongoDbSettings": { + "additionalProperties": false, + "properties": { + "AuthMechanism": { + "type": "string" + }, + "AuthSource": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DocsToInvestigate": { + "type": "string" + }, + "ExtractDocId": { + "type": "string" + }, + "NestingLevel": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "ServerName": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.MySqlSettings": { + "additionalProperties": false, + "properties": { + "AfterConnectScript": { + "type": "string" + }, + "CleanSourceMetadataOnMismatch": { + "type": "boolean" + }, + "EventsPollInterval": { + "type": "number" + }, + "MaxFileSize": { + "type": "number" + }, + "ParallelLoadThreads": { + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "ServerTimezone": { + "type": "string" + }, + "TargetDbType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.NeptuneSettings": { + "additionalProperties": false, + "properties": { + "ErrorRetryDuration": { + "type": "number" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "MaxFileSize": { + "type": "number" + }, + "MaxRetryCount": { + "type": "number" + }, + "S3BucketFolder": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.OracleSettings": { + "additionalProperties": false, + "properties": { + "AccessAlternateDirectly": { + "type": "boolean" + }, + "AddSupplementalLogging": { + "type": "boolean" + }, + "AdditionalArchivedLogDestId": { + "type": "number" + }, + "AllowSelectNestedTables": { + "type": "boolean" + }, + "ArchivedLogDestId": { + "type": "number" + }, + "ArchivedLogsOnly": { + "type": "boolean" + }, + "AsmPassword": { + "type": "string" + }, + "AsmServer": { + "type": "string" + }, + "AsmUser": { + "type": "string" + }, + "CharLengthSemantics": { + "type": "string" + }, + "DirectPathNoLog": { + "type": "boolean" + }, + "DirectPathParallelLoad": { + "type": "boolean" + }, + "EnableHomogenousTablespace": { + "type": "boolean" + }, + "ExtraArchivedLogDestIds": { + "items": { + "type": "number" + }, + "type": "array" + }, + "FailTasksOnLobTruncation": { + "type": "boolean" + }, + "NumberDatatypeScale": { + "type": "number" + }, + "OraclePathPrefix": { + "type": "string" + }, + "ParallelAsmReadThreads": { + "type": "number" + }, + "ReadAheadBlocks": { + "type": "number" + }, + "ReadTableSpaceName": { + "type": "boolean" + }, + "ReplacePathPrefix": { + "type": "boolean" + }, + "RetryInterval": { + "type": "number" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerOracleAsmAccessRoleArn": { + "type": "string" + }, + "SecretsManagerOracleAsmSecretId": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "SecurityDbEncryption": { + "type": "string" + }, + "SecurityDbEncryptionName": { + "type": "string" + }, + "SpatialDataOptionToGeoJsonFunctionName": { + "type": "string" + }, + "StandbyDelayTime": { + "type": "number" + }, + "UseAlternateFolderForOnline": { + "type": "boolean" + }, + "UseBFile": { + "type": "boolean" + }, + "UseDirectPathFullLoad": { + "type": "boolean" + }, + "UseLogminerReader": { + "type": "boolean" + }, + "UsePathPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.PostgreSqlSettings": { + "additionalProperties": false, + "properties": { + "AfterConnectScript": { + "type": "string" + }, + "CaptureDdls": { + "type": "boolean" + }, + "DdlArtifactsSchema": { + "type": "string" + }, + "ExecuteTimeout": { + "type": "number" + }, + "FailTasksOnLobTruncation": { + "type": "boolean" + }, + "HeartbeatEnable": { + "type": "boolean" + }, + "HeartbeatFrequency": { + "type": "number" + }, + "HeartbeatSchema": { + "type": "string" + }, + "MaxFileSize": { + "type": "number" + }, + "PluginName": { + "type": "string" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "SlotName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.RedisSettings": { + "additionalProperties": false, + "properties": { + "AuthPassword": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "AuthUserName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "ServerName": { + "type": "string" + }, + "SslCaCertificateArn": { + "type": "string" + }, + "SslSecurityProtocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.RedshiftSettings": { + "additionalProperties": false, + "properties": { + "AcceptAnyDate": { + "type": "boolean" + }, + "AfterConnectScript": { + "type": "string" + }, + "BucketFolder": { + "type": "string" + }, + "BucketName": { + "type": "string" + }, + "CaseSensitiveNames": { + "type": "boolean" + }, + "CompUpdate": { + "type": "boolean" + }, + "ConnectionTimeout": { + "type": "number" + }, + "DateFormat": { + "type": "string" + }, + "EmptyAsNull": { + "type": "boolean" + }, + "EncryptionMode": { + "type": "string" + }, + "ExplicitIds": { + "type": "boolean" + }, + "FileTransferUploadStreams": { + "type": "number" + }, + "LoadTimeout": { + "type": "number" + }, + "MaxFileSize": { + "type": "number" + }, + "RemoveQuotes": { + "type": "boolean" + }, + "ReplaceChars": { + "type": "string" + }, + "ReplaceInvalidChars": { + "type": "string" + }, + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + }, + "ServerSideEncryptionKmsKeyId": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + }, + "TimeFormat": { + "type": "string" + }, + "TrimBlanks": { + "type": "boolean" + }, + "TruncateColumns": { + "type": "boolean" + }, + "WriteBufferSize": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.S3Settings": { + "additionalProperties": false, + "properties": { + "AddColumnName": { + "type": "boolean" + }, + "BucketFolder": { + "type": "string" + }, + "BucketName": { + "type": "string" + }, + "CannedAclForObjects": { + "type": "string" + }, + "CdcInsertsAndUpdates": { + "type": "boolean" + }, + "CdcInsertsOnly": { + "type": "boolean" + }, + "CdcMaxBatchInterval": { + "type": "number" + }, + "CdcMinFileSize": { + "type": "number" + }, + "CdcPath": { + "type": "string" + }, + "CompressionType": { + "type": "string" + }, + "CsvDelimiter": { + "type": "string" + }, + "CsvNoSupValue": { + "type": "string" + }, + "CsvNullValue": { + "type": "string" + }, + "CsvRowDelimiter": { + "type": "string" + }, + "DataFormat": { + "type": "string" + }, + "DataPageSize": { + "type": "number" + }, + "DatePartitionDelimiter": { + "type": "string" + }, + "DatePartitionEnabled": { + "type": "boolean" + }, + "DatePartitionSequence": { + "type": "string" + }, + "DatePartitionTimezone": { + "type": "string" + }, + "DictPageSizeLimit": { + "type": "number" + }, + "EnableStatistics": { + "type": "boolean" + }, + "EncodingType": { + "type": "string" + }, + "EncryptionMode": { + "type": "string" + }, + "ExternalTableDefinition": { + "type": "string" + }, + "IgnoreHeaderRows": { + "type": "number" + }, + "IncludeOpForFullLoad": { + "type": "boolean" + }, + "MaxFileSize": { + "type": "number" + }, + "ParquetTimestampInMillisecond": { + "type": "boolean" + }, + "ParquetVersion": { + "type": "string" + }, + "PreserveTransactions": { + "type": "boolean" + }, + "Rfc4180": { + "type": "boolean" + }, + "RowGroupLength": { + "type": "number" + }, + "ServerSideEncryptionKmsKeyId": { + "type": "string" + }, + "ServiceAccessRoleArn": { + "type": "string" + }, + "TimestampColumnName": { + "type": "string" + }, + "UseCsvNoSupValue": { + "type": "boolean" + }, + "UseTaskStartTimeForFullLoadTimestamp": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DMS::Endpoint.SybaseSettings": { + "additionalProperties": false, + "properties": { + "SecretsManagerAccessRoleArn": { + "type": "string" + }, + "SecretsManagerSecretId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DMS::EventSubscription": { + "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": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SnsTopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::EventSubscription" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DMS::ReplicationInstance": { + "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": { + "AllocatedStorage": { + "type": "number" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationInstanceClass": { + "type": "string" + }, + "ReplicationInstanceIdentifier": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ReplicationInstanceClass" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::ReplicationInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DMS::ReplicationSubnetGroup": { + "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": { + "ReplicationSubnetGroupDescription": { + "type": "string" + }, + "ReplicationSubnetGroupIdentifier": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ReplicationSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::ReplicationSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DMS::ReplicationTask": { + "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": { + "CdcStartPosition": { + "type": "string" + }, + "CdcStartTime": { + "type": "number" + }, + "CdcStopPosition": { + "type": "string" + }, + "MigrationType": { + "type": "string" + }, + "ReplicationInstanceArn": { + "type": "string" + }, + "ReplicationTaskIdentifier": { + "type": "string" + }, + "ReplicationTaskSettings": { + "type": "string" + }, + "ResourceIdentifier": { + "type": "string" + }, + "SourceEndpointArn": { + "type": "string" + }, + "TableMappings": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetEndpointArn": { + "type": "string" + }, + "TaskData": { + "type": "string" + } + }, + "required": [ + "MigrationType", + "ReplicationInstanceArn", + "SourceEndpointArn", + "TableMappings", + "TargetEndpointArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DMS::ReplicationTask" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset": { + "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": { + "Format": { + "type": "string" + }, + "FormatOptions": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FormatOptions" + }, + "Input": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.Input" + }, + "Name": { + "type": "string" + }, + "PathOptions": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.PathOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Input", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.CsvOptions": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderRow": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.DatabaseInputDefinition": { + "additionalProperties": false, + "properties": { + "DatabaseTableName": { + "type": "string" + }, + "GlueConnectionName": { + "type": "string" + }, + "QueryString": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location" + } + }, + "required": [ + "GlueConnectionName" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.DatasetParameter": { + "additionalProperties": false, + "properties": { + "CreateColumn": { + "type": "boolean" + }, + "DatetimeOptions": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatetimeOptions" + }, + "Filter": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.DatetimeOptions": { + "additionalProperties": false, + "properties": { + "Format": { + "type": "string" + }, + "LocaleCode": { + "type": "string" + }, + "TimezoneOffset": { + "type": "string" + } + }, + "required": [ + "Format" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.ExcelOptions": { + "additionalProperties": false, + "properties": { + "HeaderRow": { + "type": "boolean" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.FilesLimit": { + "additionalProperties": false, + "properties": { + "MaxFiles": { + "type": "number" + }, + "Order": { + "type": "string" + }, + "OrderedBy": { + "type": "string" + } + }, + "required": [ + "MaxFiles" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.FilterExpression": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "ValuesMap": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterValue" + }, + "type": "array" + } + }, + "required": [ + "Expression", + "ValuesMap" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.FilterValue": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + }, + "ValueReference": { + "type": "string" + } + }, + "required": [ + "Value", + "ValueReference" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.FormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.CsvOptions" + }, + "Excel": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.ExcelOptions" + }, + "Json": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.JsonOptions" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.Input": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DataCatalogInputDefinition" + }, + "DatabaseInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatabaseInputDefinition" + }, + "Metadata": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.Metadata" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.JsonOptions": { + "additionalProperties": false, + "properties": { + "MultiLine": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.Metadata": { + "additionalProperties": false, + "properties": { + "SourceArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.PathOptions": { + "additionalProperties": false, + "properties": { + "FilesLimit": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilesLimit" + }, + "LastModifiedDateCondition": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.FilterExpression" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.PathParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Dataset.PathParameter": { + "additionalProperties": false, + "properties": { + "DatasetParameter": { + "$ref": "#/definitions/AWS::DataBrew::Dataset.DatasetParameter" + }, + "PathParameterName": { + "type": "string" + } + }, + "required": [ + "DatasetParameter", + "PathParameterName" + ], + "type": "object" + }, + "AWS::DataBrew::Dataset.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Job": { + "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": { + "DataCatalogOutputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.DataCatalogOutput" + }, + "type": "array" + }, + "DatabaseOutputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseOutput" + }, + "type": "array" + }, + "DatasetName": { + "type": "string" + }, + "EncryptionKeyArn": { + "type": "string" + }, + "EncryptionMode": { + "type": "string" + }, + "JobSample": { + "$ref": "#/definitions/AWS::DataBrew::Job.JobSample" + }, + "LogSubscription": { + "type": "string" + }, + "MaxCapacity": { + "type": "number" + }, + "MaxRetries": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "OutputLocation": { + "$ref": "#/definitions/AWS::DataBrew::Job.OutputLocation" + }, + "Outputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.Output" + }, + "type": "array" + }, + "ProfileConfiguration": { + "$ref": "#/definitions/AWS::DataBrew::Job.ProfileConfiguration" + }, + "ProjectName": { + "type": "string" + }, + "Recipe": { + "$ref": "#/definitions/AWS::DataBrew::Job.Recipe" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Timeout": { + "type": "number" + }, + "Type": { + "type": "string" + }, + "ValidationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ValidationConfiguration" + }, + "type": "array" + } + }, + "required": [ + "Name", + "RoleArn", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Job" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Job.AllowedStatistics": { + "additionalProperties": false, + "properties": { + "Statistics": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Statistics" + ], + "type": "object" + }, + "AWS::DataBrew::Job.ColumnSelector": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.ColumnStatisticsConfiguration": { + "additionalProperties": false, + "properties": { + "Selectors": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector" + }, + "type": "array" + }, + "Statistics": { + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration" + } + }, + "required": [ + "Statistics" + ], + "type": "object" + }, + "AWS::DataBrew::Job.CsvOutputOptions": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.DataCatalogOutput": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DatabaseOptions": { + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions" + }, + "Overwrite": { + "type": "boolean" + }, + "S3Options": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3TableOutputOptions" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "AWS::DataBrew::Job.DatabaseOutput": { + "additionalProperties": false, + "properties": { + "DatabaseOptions": { + "$ref": "#/definitions/AWS::DataBrew::Job.DatabaseTableOutputOptions" + }, + "DatabaseOutputMode": { + "type": "string" + }, + "GlueConnectionName": { + "type": "string" + } + }, + "required": [ + "DatabaseOptions", + "GlueConnectionName" + ], + "type": "object" + }, + "AWS::DataBrew::Job.DatabaseTableOutputOptions": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "AWS::DataBrew::Job.EntityDetectorConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedStatistics": { + "$ref": "#/definitions/AWS::DataBrew::Job.AllowedStatistics" + }, + "EntityTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "EntityTypes" + ], + "type": "object" + }, + "AWS::DataBrew::Job.JobSample": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + }, + "Size": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.Output": { + "additionalProperties": false, + "properties": { + "CompressionFormat": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "FormatOptions": { + "$ref": "#/definitions/AWS::DataBrew::Job.OutputFormatOptions" + }, + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" + }, + "MaxOutputFiles": { + "type": "number" + }, + "Overwrite": { + "type": "boolean" + }, + "PartitionColumns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "AWS::DataBrew::Job.OutputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DataBrew::Job.CsvOutputOptions" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.OutputLocation": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BucketOwner": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Job.ProfileConfiguration": { + "additionalProperties": false, + "properties": { + "ColumnStatisticsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ColumnStatisticsConfiguration" + }, + "type": "array" + }, + "DatasetStatisticsConfiguration": { + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticsConfiguration" + }, + "EntityDetectorConfiguration": { + "$ref": "#/definitions/AWS::DataBrew::Job.EntityDetectorConfiguration" + }, + "ProfileColumns": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.ColumnSelector" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.Recipe": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::DataBrew::Job.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "BucketOwner": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Job.S3TableOutputOptions": { + "additionalProperties": false, + "properties": { + "Location": { + "$ref": "#/definitions/AWS::DataBrew::Job.S3Location" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "AWS::DataBrew::Job.StatisticOverride": { + "additionalProperties": false, + "properties": { + "Parameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Statistic": { + "type": "string" + } + }, + "required": [ + "Parameters", + "Statistic" + ], + "type": "object" + }, + "AWS::DataBrew::Job.StatisticsConfiguration": { + "additionalProperties": false, + "properties": { + "IncludedStatistics": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Job.StatisticOverride" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DataBrew::Job.ValidationConfiguration": { + "additionalProperties": false, + "properties": { + "RulesetArn": { + "type": "string" + }, + "ValidationMode": { + "type": "string" + } + }, + "required": [ + "RulesetArn" + ], + "type": "object" + }, + "AWS::DataBrew::Project": { + "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": { + "DatasetName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecipeName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sample": { + "$ref": "#/definitions/AWS::DataBrew::Project.Sample" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatasetName", + "Name", + "RecipeName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Project.Sample": { + "additionalProperties": false, + "properties": { + "Size": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeStep" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Steps" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Recipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.Action": { + "additionalProperties": false, + "properties": { + "Operation": { + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.RecipeParameters" + } + }, + "required": [ + "Operation" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.ConditionExpression": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Condition", + "TargetColumn" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.DataCatalogInputDefinition": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "TempDirectory": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.Input": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeParameters": { + "additionalProperties": false, + "properties": { + "AggregateFunction": { + "type": "string" + }, + "Base": { + "type": "string" + }, + "CaseStatement": { + "type": "string" + }, + "CategoryMap": { + "type": "string" + }, + "CharsToRemove": { + "type": "string" + }, + "CollapseConsecutiveWhitespace": { + "type": "string" + }, + "ColumnDataType": { + "type": "string" + }, + "ColumnRange": { + "type": "string" + }, + "Count": { + "type": "string" + }, + "CustomCharacters": { + "type": "string" + }, + "CustomStopWords": { + "type": "string" + }, + "CustomValue": { + "type": "string" + }, + "DatasetsColumns": { + "type": "string" + }, + "DateAddValue": { + "type": "string" + }, + "DateTimeFormat": { + "type": "string" + }, + "DateTimeParameters": { + "type": "string" + }, + "DeleteOtherRows": { + "type": "string" + }, + "Delimiter": { + "type": "string" + }, + "EndPattern": { + "type": "string" + }, + "EndPosition": { + "type": "string" + }, + "EndValue": { + "type": "string" + }, + "ExpandContractions": { + "type": "string" + }, + "Exponent": { + "type": "string" + }, + "FalseString": { + "type": "string" + }, + "GroupByAggFunctionOptions": { + "type": "string" + }, + "GroupByColumns": { + "type": "string" + }, + "HiddenColumns": { + "type": "string" + }, + "IgnoreCase": { + "type": "string" + }, + "IncludeInSplit": { + "type": "string" + }, + "Input": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Input" + }, + "Interval": { + "type": "string" + }, + "IsText": { + "type": "string" + }, + "JoinKeys": { + "type": "string" + }, + "JoinType": { + "type": "string" + }, + "LeftColumns": { + "type": "string" + }, + "Limit": { + "type": "string" + }, + "LowerBound": { + "type": "string" + }, + "MapType": { + "type": "string" + }, + "ModeType": { + "type": "string" + }, + "MultiLine": { + "type": "boolean" + }, + "NumRows": { + "type": "string" + }, + "NumRowsAfter": { + "type": "string" + }, + "NumRowsBefore": { + "type": "string" + }, + "OrderByColumn": { + "type": "string" + }, + "OrderByColumns": { + "type": "string" + }, + "Other": { + "type": "string" + }, + "Pattern": { + "type": "string" + }, + "PatternOption1": { + "type": "string" + }, + "PatternOption2": { + "type": "string" + }, + "PatternOptions": { + "type": "string" + }, + "Period": { + "type": "string" + }, + "Position": { + "type": "string" + }, + "RemoveAllPunctuation": { + "type": "string" + }, + "RemoveAllQuotes": { + "type": "string" + }, + "RemoveAllWhitespace": { + "type": "string" + }, + "RemoveCustomCharacters": { + "type": "string" + }, + "RemoveCustomValue": { + "type": "string" + }, + "RemoveLeadingAndTrailingPunctuation": { + "type": "string" + }, + "RemoveLeadingAndTrailingQuotes": { + "type": "string" + }, + "RemoveLeadingAndTrailingWhitespace": { + "type": "string" + }, + "RemoveLetters": { + "type": "string" + }, + "RemoveNumbers": { + "type": "string" + }, + "RemoveSourceColumn": { + "type": "string" + }, + "RemoveSpecialCharacters": { + "type": "string" + }, + "RightColumns": { + "type": "string" + }, + "SampleSize": { + "type": "string" + }, + "SampleType": { + "type": "string" + }, + "SecondInput": { + "type": "string" + }, + "SecondaryInputs": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.SecondaryInput" + }, + "type": "array" + }, + "SheetIndexes": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SheetNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceColumn": { + "type": "string" + }, + "SourceColumn1": { + "type": "string" + }, + "SourceColumn2": { + "type": "string" + }, + "SourceColumns": { + "type": "string" + }, + "StartColumnIndex": { + "type": "string" + }, + "StartPattern": { + "type": "string" + }, + "StartPosition": { + "type": "string" + }, + "StartValue": { + "type": "string" + }, + "StemmingMode": { + "type": "string" + }, + "StepCount": { + "type": "string" + }, + "StepIndex": { + "type": "string" + }, + "StopWordsMode": { + "type": "string" + }, + "Strategy": { + "type": "string" + }, + "TargetColumn": { + "type": "string" + }, + "TargetColumnNames": { + "type": "string" + }, + "TargetDateFormat": { + "type": "string" + }, + "TargetIndex": { + "type": "string" + }, + "TimeZone": { + "type": "string" + }, + "TokenizerPattern": { + "type": "string" + }, + "TrueString": { + "type": "string" + }, + "UdfLang": { + "type": "string" + }, + "Units": { + "type": "string" + }, + "UnpivotColumn": { + "type": "string" + }, + "UpperBound": { + "type": "string" + }, + "UseNewDataFrame": { + "type": "string" + }, + "Value": { + "type": "string" + }, + "Value1": { + "type": "string" + }, + "Value2": { + "type": "string" + }, + "ValueColumn": { + "type": "string" + }, + "ViewFrame": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Recipe.RecipeStep": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.Action" + }, + "ConditionExpressions": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.ConditionExpression" + }, + "type": "array" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::DataBrew::Recipe.SecondaryInput": { + "additionalProperties": false, + "properties": { + "DataCatalogInputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.DataCatalogInputDefinition" + }, + "S3InputDefinition": { + "$ref": "#/definitions/AWS::DataBrew::Recipe.S3Location" + } + }, + "type": "object" + }, + "AWS::DataBrew::Ruleset": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.Rule" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "Name", + "Rules", + "TargetArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Ruleset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataBrew::Ruleset.ColumnSelector": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataBrew::Ruleset.Rule": { + "additionalProperties": false, + "properties": { + "CheckExpression": { + "type": "string" + }, + "ColumnSelectors": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.ColumnSelector" + }, + "type": "array" + }, + "Disabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "SubstitutionMap": { + "items": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.SubstitutionValue" + }, + "type": "array" + }, + "Threshold": { + "$ref": "#/definitions/AWS::DataBrew::Ruleset.Threshold" + } + }, + "required": [ + "CheckExpression", + "Name" + ], + "type": "object" + }, + "AWS::DataBrew::Ruleset.SubstitutionValue": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + }, + "ValueReference": { + "type": "string" + } + }, + "required": [ + "Value", + "ValueReference" + ], + "type": "object" + }, + "AWS::DataBrew::Ruleset.Threshold": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Unit": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::DataBrew::Schedule": { + "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": { + "CronExpression": { + "type": "string" + }, + "JobNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CronExpression", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataBrew::Schedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline": { + "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": { + "Activate": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParameterObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterObject" + }, + "type": "array" + }, + "ParameterValues": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterValue" + }, + "type": "array" + }, + "PipelineObjects": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineObject" + }, + "type": "array" + }, + "PipelineTags": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.PipelineTag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataPipeline::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.Field": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "RefValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Key", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterObject": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.ParameterAttribute" + }, + "type": "array" + }, + "Id": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Id" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.ParameterValue": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "required": [ + "Id", + "StringValue" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineObject": { + "additionalProperties": false, + "properties": { + "Fields": { + "items": { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline.Field" + }, + "type": "array" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Fields", + "Id", + "Name" + ], + "type": "object" + }, + "AWS::DataPipeline::Pipeline.PipelineTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::DataSync::Agent": { + "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": { + "ActivationKey": { + "type": "string" + }, + "AgentName": { + "type": "string" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcEndpointId": { + "type": "string" + } + }, + "required": [ + "ActivationKey" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::Agent" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationEFS": { + "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": { + "AccessPointArn": { + "type": "string" + }, + "Ec2Config": { + "$ref": "#/definitions/AWS::DataSync::LocationEFS.Ec2Config" + }, + "EfsFilesystemArn": { + "type": "string" + }, + "FileSystemAccessRoleArn": { + "type": "string" + }, + "InTransitEncryption": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Ec2Config" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationEFS" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationEFS.Ec2Config": { + "additionalProperties": false, + "properties": { + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetArn": { + "type": "string" + } + }, + "required": [ + "SecurityGroupArns", + "SubnetArn" + ], + "type": "object" + }, + "AWS::DataSync::LocationFSxLustre": { + "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": { + "FsxFilesystemArn": { + "type": "string" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupArns" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationFSxLustre" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationFSxONTAP": { + "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": { + "Protocol": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.Protocol" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StorageVirtualMachineArn": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Protocol", + "SecurityGroupArns", + "StorageVirtualMachineArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationFSxONTAP" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationFSxONTAP.NFS": { + "additionalProperties": false, + "properties": { + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.NfsMountOptions" + } + }, + "required": [ + "MountOptions" + ], + "type": "object" + }, + "AWS::DataSync::LocationFSxONTAP.NfsMountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationFSxONTAP.Protocol": { + "additionalProperties": false, + "properties": { + "NFS": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.NFS" + }, + "SMB": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.SMB" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationFSxONTAP.SMB": { + "additionalProperties": false, + "properties": { + "Domain": { + "type": "string" + }, + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP.SmbMountOptions" + }, + "Password": { + "type": "string" + }, + "User": { + "type": "string" + } + }, + "required": [ + "MountOptions", + "Password", + "User" + ], + "type": "object" + }, + "AWS::DataSync::LocationFSxONTAP.SmbMountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationFSxOpenZFS": { + "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": { + "FsxFilesystemArn": { + "type": "string" + }, + "Protocol": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS.Protocol" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FsxFilesystemArn", + "Protocol", + "SecurityGroupArns" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationFSxOpenZFS" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationFSxOpenZFS.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationFSxOpenZFS.NFS": { + "additionalProperties": false, + "properties": { + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS.MountOptions" + } + }, + "required": [ + "MountOptions" + ], + "type": "object" + }, + "AWS::DataSync::LocationFSxOpenZFS.Protocol": { + "additionalProperties": false, + "properties": { + "NFS": { + "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS.NFS" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationFSxWindows": { + "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": { + "Domain": { + "type": "string" + }, + "FsxFilesystemArn": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "SecurityGroupArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "User": { + "type": "string" + } + }, + "required": [ + "SecurityGroupArns", + "User" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationFSxWindows" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationHDFS": { + "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": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthenticationType": { + "type": "string" + }, + "BlockSize": { + "type": "number" + }, + "KerberosKeytab": { + "type": "string" + }, + "KerberosKrb5Conf": { + "type": "string" + }, + "KerberosPrincipal": { + "type": "string" + }, + "KmsKeyProviderUri": { + "type": "string" + }, + "NameNodes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.NameNode" + }, + "type": "array" + }, + "QopConfiguration": { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS.QopConfiguration" + }, + "ReplicationFactor": { + "type": "number" + }, + "SimpleUser": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AgentArns", + "AuthenticationType", + "NameNodes" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationHDFS" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationHDFS.NameNode": { + "additionalProperties": false, + "properties": { + "Hostname": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Hostname", + "Port" + ], + "type": "object" + }, + "AWS::DataSync::LocationHDFS.QopConfiguration": { + "additionalProperties": false, + "properties": { + "DataTransferProtection": { + "type": "string" + }, + "RpcProtection": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationNFS": { + "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": { + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.MountOptions" + }, + "OnPremConfig": { + "$ref": "#/definitions/AWS::DataSync::LocationNFS.OnPremConfig" + }, + "ServerHostname": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "OnPremConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationNFS" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationNFS.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::LocationNFS.OnPremConfig": { + "additionalProperties": false, + "properties": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AgentArns" + ], + "type": "object" + }, + "AWS::DataSync::LocationObjectStorage": { + "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": { + "AccessKey": { + "type": "string" + }, + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BucketName": { + "type": "string" + }, + "SecretKey": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "ServerPort": { + "type": "number" + }, + "ServerProtocol": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AgentArns" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationObjectStorage" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationS3": { + "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": { + "S3BucketArn": { + "type": "string" + }, + "S3Config": { + "$ref": "#/definitions/AWS::DataSync::LocationS3.S3Config" + }, + "S3StorageClass": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "S3BucketArn", + "S3Config" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationS3" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationS3.S3Config": { + "additionalProperties": false, + "properties": { + "BucketAccessRoleArn": { + "type": "string" + } + }, + "required": [ + "BucketAccessRoleArn" + ], + "type": "object" + }, + "AWS::DataSync::LocationSMB": { + "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": { + "AgentArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Domain": { + "type": "string" + }, + "MountOptions": { + "$ref": "#/definitions/AWS::DataSync::LocationSMB.MountOptions" + }, + "Password": { + "type": "string" + }, + "ServerHostname": { + "type": "string" + }, + "Subdirectory": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "User": { + "type": "string" + } + }, + "required": [ + "AgentArns", + "User" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::LocationSMB" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::LocationSMB.MountOptions": { + "additionalProperties": false, + "properties": { + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task": { + "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": { + "CloudWatchLogGroupArn": { + "type": "string" + }, + "DestinationLocationArn": { + "type": "string" + }, + "Excludes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::Task.FilterRule" + }, + "type": "array" + }, + "Includes": { + "items": { + "$ref": "#/definitions/AWS::DataSync::Task.FilterRule" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Options": { + "$ref": "#/definitions/AWS::DataSync::Task.Options" + }, + "Schedule": { + "$ref": "#/definitions/AWS::DataSync::Task.TaskSchedule" + }, + "SourceLocationArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DestinationLocationArn", + "SourceLocationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DataSync::Task" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DataSync::Task.FilterRule": { + "additionalProperties": false, + "properties": { + "FilterType": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task.Options": { + "additionalProperties": false, + "properties": { + "Atime": { + "type": "string" + }, + "BytesPerSecond": { + "type": "number" + }, + "Gid": { + "type": "string" + }, + "LogLevel": { + "type": "string" + }, + "Mtime": { + "type": "string" + }, + "ObjectTags": { + "type": "string" + }, + "OverwriteMode": { + "type": "string" + }, + "PosixPermissions": { + "type": "string" + }, + "PreserveDeletedFiles": { + "type": "string" + }, + "PreserveDevices": { + "type": "string" + }, + "SecurityDescriptorCopyFlags": { + "type": "string" + }, + "TaskQueueing": { + "type": "string" + }, + "TransferMode": { + "type": "string" + }, + "Uid": { + "type": "string" + }, + "VerifyMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DataSync::Task.TaskSchedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::Detective::Graph": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Detective::Graph" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Detective::MemberInvitation": { + "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": { + "DisableEmailNotification": { + "type": "boolean" + }, + "GraphArn": { + "type": "string" + }, + "MemberEmailAddress": { + "type": "string" + }, + "MemberId": { + "type": "string" + }, + "Message": { + "type": "string" + } + }, + "required": [ + "GraphArn", + "MemberEmailAddress", + "MemberId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Detective::MemberInvitation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DevOpsGuru::NotificationChannel": { + "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": { + "Config": { + "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig" + } + }, + "required": [ + "Config" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DevOpsGuru::NotificationChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DevOpsGuru::NotificationChannel.NotificationChannelConfig": { + "additionalProperties": false, + "properties": { + "Filters": { + "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.NotificationFilterConfig" + }, + "Sns": { + "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig" + } + }, + "type": "object" + }, + "AWS::DevOpsGuru::NotificationChannel.NotificationFilterConfig": { + "additionalProperties": false, + "properties": { + "MessageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Severities": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DevOpsGuru::NotificationChannel.SnsChannelConfig": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DevOpsGuru::ResourceCollection": { + "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": { + "ResourceCollectionFilter": { + "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter" + } + }, + "required": [ + "ResourceCollectionFilter" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DevOpsGuru::ResourceCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter": { + "additionalProperties": false, + "properties": { + "StackNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DevOpsGuru::ResourceCollection.ResourceCollectionFilter": { + "additionalProperties": false, + "properties": { + "CloudFormation": { + "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.CloudFormationCollectionFilter" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection.TagCollection" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DevOpsGuru::ResourceCollection.TagCollection": { + "additionalProperties": false, + "properties": { + "AppBoundaryKey": { + "type": "string" + }, + "TagValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DirectoryService::MicrosoftAD": { + "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": { + "CreateAlias": { + "type": "boolean" + }, + "Edition": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD.VpcSettings" + } + }, + "required": [ + "Name", + "Password", + "VpcSettings" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DirectoryService::MicrosoftAD" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DirectoryService::MicrosoftAD.VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "VpcId" + ], + "type": "object" + }, + "AWS::DirectoryService::SimpleAD": { + "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": { + "CreateAlias": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "EnableSso": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "ShortName": { + "type": "string" + }, + "Size": { + "type": "string" + }, + "VpcSettings": { + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD.VpcSettings" + } + }, + "required": [ + "Name", + "Size", + "VpcSettings" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DirectoryService::SimpleAD" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DirectoryService::SimpleAD.VpcSettings": { + "additionalProperties": false, + "properties": { + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "VpcId" + ], + "type": "object" + }, + "AWS::DocDB::DBCluster": { + "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": { + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DocDB::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::DocDB::DBClusterParameterGroup": { + "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": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DocDB::DBClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DocDB::DBInstance": { + "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": { + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "EnablePerformanceInsights": { + "type": "boolean" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBClusterIdentifier", + "DBInstanceClass" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DocDB::DBInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DocDB::DBSubnetGroup": { + "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": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DocDB::DBSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DocDBElastic::Cluster": { + "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": { + "AdminUserName": { + "type": "string" + }, + "AdminUserPassword": { + "type": "string" + }, + "AuthType": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ShardCapacity": { + "type": "number" + }, + "ShardCount": { + "type": "number" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AdminUserName", + "AuthType", + "ClusterName", + "ShardCapacity", + "ShardCount" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DocDBElastic::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable": { + "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": { + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.AttributeDefinition" + }, + "type": "array" + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex" + }, + "type": "array" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" + }, + "type": "array" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.LocalSecondaryIndex" + }, + "type": "array" + }, + "Replicas": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSpecification" + }, + "type": "array" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.StreamSpecification" + }, + "TableName": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TimeToLiveSpecification" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings" + } + }, + "required": [ + "AttributeDefinitions", + "KeySchema", + "Replicas" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DynamoDB::GlobalTable" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "SeedCapacity": { + "type": "number" + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity", + "TargetTrackingScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" + }, + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection" + }, + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.KeySchema" + }, + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "ReadCapacityAutoScalingSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings" + }, + "ReadCapacityUnits": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings" + } + }, + "required": [ + "IndexName" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReplicaSSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "type": "string" + } + }, + "required": [ + "KMSMasterKeyId" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.ReplicaSpecification": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ContributorInsightsSpecification" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaGlobalSecondaryIndexSpecification" + }, + "type": "array" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.PointInTimeRecoverySpecification" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReadProvisionedThroughputSettings" + }, + "Region": { + "type": "string" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.ReplicaSSESpecification" + }, + "TableClass": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.SSESpecification": { + "additionalProperties": false, + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.TargetTrackingScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleInCooldown": { + "type": "number" + }, + "ScaleOutCooldown": { + "type": "number" + }, + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::DynamoDB::GlobalTable.WriteProvisionedThroughputSettings": { + "additionalProperties": false, + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable.CapacityAutoScalingSettings" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table": { + "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": { + "AttributeDefinitions": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.AttributeDefinition" + }, + "type": "array" + }, + "BillingMode": { + "type": "string" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification" + }, + "GlobalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.GlobalSecondaryIndex" + }, + "type": "array" + }, + "ImportSourceSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ImportSourceSpecification" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KinesisStreamSpecification" + }, + "LocalSecondaryIndexes": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.LocalSecondaryIndex" + }, + "type": "array" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.PointInTimeRecoverySpecification" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + }, + "SSESpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.SSESpecification" + }, + "StreamSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.StreamSpecification" + }, + "TableClass": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.TimeToLiveSpecification" + } + }, + "required": [ + "KeySchema" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::DynamoDB::Table" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.AttributeDefinition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.ContributorInsightsSpecification": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.Csv": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.GlobalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "ContributorInsightsSpecification": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ContributorInsightsSpecification" + }, + "IndexName": { + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + }, + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::DynamoDB::Table.ProvisionedThroughput" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.ImportSourceSpecification": { + "additionalProperties": false, + "properties": { + "InputCompressionType": { + "type": "string" + }, + "InputFormat": { + "type": "string" + }, + "InputFormatOptions": { + "$ref": "#/definitions/AWS::DynamoDB::Table.InputFormatOptions" + }, + "S3BucketSource": { + "$ref": "#/definitions/AWS::DynamoDB::Table.S3BucketSource" + } + }, + "required": [ + "InputFormat", + "S3BucketSource" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.InputFormatOptions": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Csv" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.KeySchema": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "KeyType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.KinesisStreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamArn": { + "type": "string" + } + }, + "required": [ + "StreamArn" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.LocalSecondaryIndex": { + "additionalProperties": false, + "properties": { + "IndexName": { + "type": "string" + }, + "KeySchema": { + "items": { + "$ref": "#/definitions/AWS::DynamoDB::Table.KeySchema" + }, + "type": "array" + }, + "Projection": { + "$ref": "#/definitions/AWS::DynamoDB::Table.Projection" + } + }, + "required": [ + "IndexName", + "KeySchema", + "Projection" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.PointInTimeRecoverySpecification": { + "additionalProperties": false, + "properties": { + "PointInTimeRecoveryEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.Projection": { + "additionalProperties": false, + "properties": { + "NonKeyAttributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ProjectionType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::DynamoDB::Table.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "ReadCapacityUnits": { + "type": "number" + }, + "WriteCapacityUnits": { + "type": "number" + } + }, + "required": [ + "ReadCapacityUnits", + "WriteCapacityUnits" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.S3BucketSource": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3BucketOwner": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.SSESpecification": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyId": { + "type": "string" + }, + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.StreamSpecification": { + "additionalProperties": false, + "properties": { + "StreamViewType": { + "type": "string" + } + }, + "required": [ + "StreamViewType" + ], + "type": "object" + }, + "AWS::DynamoDB::Table.TimeToLiveSpecification": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "AttributeName", + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::CapacityReservation": { + "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": { + "AvailabilityZone": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "EndDate": { + "type": "string" + }, + "EndDateType": { + "type": "string" + }, + "EphemeralStorage": { + "type": "boolean" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceMatchCriteria": { + "type": "string" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "OutPostArn": { + "type": "string" + }, + "PlacementGroupArn": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservation.TagSpecification" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone", + "InstanceCount", + "InstancePlatform", + "InstanceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CapacityReservation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::CapacityReservation.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet": { + "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": { + "AllocationStrategy": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "InstanceMatchCriteria": { + "type": "string" + }, + "InstanceTypeSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification" + }, + "type": "array" + }, + "NoRemoveEndDate": { + "type": "boolean" + }, + "RemoveEndDate": { + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet.TagSpecification" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "TotalTargetCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CapacityReservationFleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.InstanceTypeSpecification": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "EbsOptimized": { + "type": "boolean" + }, + "InstancePlatform": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::CapacityReservationFleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::CarrierGateway": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CarrierGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnAuthorizationRule": { + "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": { + "AccessGroupId": { + "type": "string" + }, + "AuthorizeAllGroups": { + "type": "boolean" + }, + "ClientVpnEndpointId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "TargetNetworkCidr": { + "type": "string" + } + }, + "required": [ + "ClientVpnEndpointId", + "TargetNetworkCidr" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::ClientVpnAuthorizationRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint": { + "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": { + "AuthenticationOptions": { + "items": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest" + }, + "type": "array" + }, + "ClientCidrBlock": { + "type": "string" + }, + "ClientConnectOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientConnectOptions" + }, + "ClientLoginBannerOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions" + }, + "ConnectionLogOptions": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions" + }, + "Description": { + "type": "string" + }, + "DnsServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SelfServicePortal": { + "type": "string" + }, + "ServerCertificateArn": { + "type": "string" + }, + "SessionTimeoutHours": { + "type": "number" + }, + "SplitTunnel": { + "type": "boolean" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.TagSpecification" + }, + "type": "array" + }, + "TransportProtocol": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpnPort": { + "type": "number" + } + }, + "required": [ + "AuthenticationOptions", + "ClientCidrBlock", + "ConnectionLogOptions", + "ServerCertificateArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::ClientVpnEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest": { + "additionalProperties": false, + "properties": { + "ClientRootCertificateChainArn": { + "type": "string" + } + }, + "required": [ + "ClientRootCertificateChainArn" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ClientAuthenticationRequest": { + "additionalProperties": false, + "properties": { + "ActiveDirectory": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest" + }, + "FederatedAuthentication": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest" + }, + "MutualAuthentication": { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint.CertificateAuthenticationRequest" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ClientConnectOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LambdaFunctionArn": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ClientLoginBannerOptions": { + "additionalProperties": false, + "properties": { + "BannerText": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.ConnectionLogOptions": { + "additionalProperties": false, + "properties": { + "CloudwatchLogGroup": { + "type": "string" + }, + "CloudwatchLogStream": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.DirectoryServiceAuthenticationRequest": { + "additionalProperties": false, + "properties": { + "DirectoryId": { + "type": "string" + } + }, + "required": [ + "DirectoryId" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.FederatedAuthenticationRequest": { + "additionalProperties": false, + "properties": { + "SAMLProviderArn": { + "type": "string" + }, + "SelfServiceSAMLProviderArn": { + "type": "string" + } + }, + "required": [ + "SAMLProviderArn" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnEndpoint.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceType", + "Tags" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnRoute": { + "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": { + "ClientVpnEndpointId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "TargetVpcSubnetId": { + "type": "string" + } + }, + "required": [ + "ClientVpnEndpointId", + "DestinationCidrBlock", + "TargetVpcSubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::ClientVpnRoute" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::ClientVpnTargetNetworkAssociation": { + "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": { + "ClientVpnEndpointId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "ClientVpnEndpointId", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::ClientVpnTargetNetworkAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::CustomerGateway": { + "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": { + "BgpAsn": { + "type": "number" + }, + "IpAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "BgpAsn", + "IpAddress", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::CustomerGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::DHCPOptions": { + "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": { + "DomainName": { + "type": "string" + }, + "DomainNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNameServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetbiosNodeType": { + "type": "number" + }, + "NtpServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::DHCPOptions" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EC2Fleet": { + "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": { + "Context": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest" + }, + "type": "array" + }, + "OnDemandOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.OnDemandOptionsRequest" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.SpotOptionsRequest" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TagSpecification" + }, + "type": "array" + }, + "TargetCapacitySpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "required": [ + "LaunchTemplateConfigs", + "TargetCapacitySpecification" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EC2Fleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::EC2Fleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + }, + "TerminationDelay": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest": { + "additionalProperties": false, + "properties": { + "UsageStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateConfigRequest": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateOverridesRequest": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "MaxPrice": { + "type": "string" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.Placement" + }, + "Priority": { + "type": "number" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.FleetLaunchTemplateSpecificationRequest": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::EC2Fleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.OnDemandOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "CapacityReservationOptions": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.CapacityReservationOptionsRequest" + }, + "MaxTotalPrice": { + "type": "string" + }, + "MinTargetCapacity": { + "type": "number" + }, + "SingleAvailabilityZone": { + "type": "boolean" + }, + "SingleInstanceType": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "PartitionNumber": { + "type": "number" + }, + "SpreadDomain": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.SpotOptionsRequest": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "InstancePoolsToUseCount": { + "type": "number" + }, + "MaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::EC2Fleet.MaintenanceStrategies" + }, + "MaxTotalPrice": { + "type": "string" + }, + "MinTargetCapacity": { + "type": "number" + }, + "SingleAvailabilityZone": { + "type": "boolean" + }, + "SingleInstanceType": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.TargetCapacitySpecificationRequest": { + "additionalProperties": false, + "properties": { + "DefaultTargetCapacityType": { + "type": "string" + }, + "OnDemandTargetCapacity": { + "type": "number" + }, + "SpotTargetCapacity": { + "type": "number" + }, + "TargetCapacityUnitType": { + "type": "string" + }, + "TotalTargetCapacity": { + "type": "number" + } + }, + "required": [ + "TotalTargetCapacity" + ], + "type": "object" + }, + "AWS::EC2::EC2Fleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EC2Fleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::EIP": { + "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": { + "Domain": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkBorderGroup": { + "type": "string" + }, + "PublicIpv4Pool": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransferAddress": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIP" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EIPAssociation": { + "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": { + "AllocationId": { + "type": "string" + }, + "EIP": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EIPAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::EgressOnlyInternetGateway": { + "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": { + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EgressOnlyInternetGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::EnclaveCertificateIamRoleAssociation": { + "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": { + "CertificateArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::EnclaveCertificateIamRoleAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::FlowLog": { + "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": { + "DeliverLogsPermissionArn": { + "type": "string" + }, + "DestinationOptions": { + "$ref": "#/definitions/AWS::EC2::FlowLog.DestinationOptions" + }, + "LogDestination": { + "type": "string" + }, + "LogDestinationType": { + "type": "string" + }, + "LogFormat": { + "type": "string" + }, + "LogGroupName": { + "type": "string" + }, + "MaxAggregationInterval": { + "type": "number" + }, + "ResourceId": { + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrafficType": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "ResourceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::FlowLog" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::FlowLog.DestinationOptions": { + "additionalProperties": false, + "properties": { + "FileFormat": { + "type": "string" + }, + "HiveCompatiblePartitions": { + "type": "boolean" + }, + "PerHourPartition": { + "type": "boolean" + } + }, + "required": [ + "FileFormat", + "HiveCompatiblePartitions", + "PerHourPartition" + ], + "type": "object" + }, + "AWS::EC2::GatewayRouteTableAssociation": { + "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": { + "GatewayId": { + "type": "string" + }, + "RouteTableId": { + "type": "string" + } + }, + "required": [ + "GatewayId", + "RouteTableId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::GatewayRouteTableAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::Host": { + "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": { + "AutoPlacement": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "HostRecovery": { + "type": "string" + }, + "InstanceFamily": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Host" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::IPAM": { + "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": { + "Description": { + "type": "string" + }, + "OperatingRegions": { + "items": { + "$ref": "#/definitions/AWS::EC2::IPAM.IpamOperatingRegion" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAM" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::IPAM.IpamOperatingRegion": { + "additionalProperties": false, + "properties": { + "RegionName": { + "type": "string" + } + }, + "required": [ + "RegionName" + ], + "type": "object" + }, + "AWS::EC2::IPAMAllocation": { + "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": { + "Cidr": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamPoolId": { + "type": "string" + }, + "NetmaskLength": { + "type": "number" + } + }, + "required": [ + "IpamPoolId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMAllocation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::IPAMPool": { + "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": { + "AddressFamily": { + "type": "string" + }, + "AllocationDefaultNetmaskLength": { + "type": "number" + }, + "AllocationMaxNetmaskLength": { + "type": "number" + }, + "AllocationMinNetmaskLength": { + "type": "number" + }, + "AllocationResourceTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "AutoImport": { + "type": "boolean" + }, + "AwsService": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IpamScopeId": { + "type": "string" + }, + "Locale": { + "type": "string" + }, + "ProvisionedCidrs": { + "items": { + "$ref": "#/definitions/AWS::EC2::IPAMPool.ProvisionedCidr" + }, + "type": "array" + }, + "PubliclyAdvertisable": { + "type": "boolean" + }, + "SourceIpamPoolId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AddressFamily", + "IpamScopeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMPool" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::IPAMPool.ProvisionedCidr": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + } + }, + "required": [ + "Cidr" + ], + "type": "object" + }, + "AWS::EC2::IPAMScope": { + "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": { + "Description": { + "type": "string" + }, + "IpamId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "IpamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::IPAMScope" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::Instance": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "CreationPolicy": { + "type": "object" + }, + "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": { + "AdditionalInfo": { + "type": "string" + }, + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.BlockDeviceMapping" + }, + "type": "array" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::Instance.CreditSpecification" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.ElasticInferenceAccelerator" + }, + "type": "array" + }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.EnclaveOptions" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.HibernationOptions" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "IamInstanceProfile": { + "type": "string" + }, + "ImageId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "type": "array" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EC2::Instance.LaunchTemplateSpecification" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.LicenseSpecification" + }, + "type": "array" + }, + "Monitoring": { + "type": "boolean" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.NetworkInterface" + }, + "type": "array" + }, + "PlacementGroupName": { + "type": "string" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/AWS::EC2::Instance.PrivateDnsNameOptions" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PropagateTagsToVolumeOnCreation": { + "type": "boolean" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SsmAssociations": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.SsmAssociation" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Tenancy": { + "type": "string" + }, + "UserData": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.AssociationParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EC2::Instance.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::Instance.Ebs" + }, + "NoDevice": { + "$ref": "#/definitions/AWS::EC2::Instance.NoDevice" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::Instance.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "number" + }, + "ThreadsPerCore": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CPUCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.ElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::Instance.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::Instance.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::Instance.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "required": [ + "LicenseConfigurationArn" + ], + "type": "object" + }, + "AWS::EC2::Instance.NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.InstanceIpv6Address" + }, + "type": "array" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex" + ], + "type": "object" + }, + "AWS::EC2::Instance.NoDevice": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::EC2::Instance.PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::Instance.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "Primary", + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::Instance.SsmAssociation": { + "additionalProperties": false, + "properties": { + "AssociationParameters": { + "items": { + "$ref": "#/definitions/AWS::EC2::Instance.AssociationParameter" + }, + "type": "array" + }, + "DocumentName": { + "type": "string" + } + }, + "required": [ + "DocumentName" + ], + "type": "object" + }, + "AWS::EC2::Instance.Volume": { + "additionalProperties": false, + "properties": { + "Device": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "Device", + "VolumeId" + ], + "type": "object" + }, + "AWS::EC2::InternetGateway": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::InternetGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::KeyPair": { + "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": { + "KeyName": { + "type": "string" + }, + "KeyType": { + "type": "string" + }, + "PublicKeyMaterial": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KeyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::KeyPair" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate": { + "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": { + "LaunchTemplateData": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateData" + }, + "LaunchTemplateName": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification" + }, + "type": "array" + }, + "VersionDescription": { + "type": "string" + } + }, + "required": [ + "LaunchTemplateData" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::LaunchTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::LaunchTemplate.AcceleratorCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ebs" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationSpecification": { + "additionalProperties": false, + "properties": { + "CapacityReservationPreference": { + "type": "string" + }, + "CapacityReservationTarget": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationTarget" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CapacityReservationTarget": { + "additionalProperties": false, + "properties": { + "CapacityReservationId": { + "type": "string" + }, + "CapacityReservationResourceGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CpuOptions": { + "additionalProperties": false, + "properties": { + "CoreCount": { + "type": "number" + }, + "ThreadsPerCore": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.CreditSpecification": { + "additionalProperties": false, + "properties": { + "CpuCredits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ebs": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "Throughput": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.ElasticGpuSpecification": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.EnclaveOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.HibernationOptions": { + "additionalProperties": false, + "properties": { + "Configured": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.IamInstanceProfile": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceMarketOptions": { + "additionalProperties": false, + "properties": { + "MarketType": { + "type": "string" + }, + "SpotOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.SpotOptions" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.InstanceRequirements": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorCount" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.AcceleratorTotalMemoryMiB" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BaselineEbsBandwidthMbps" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MemoryMiB" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkBandwidthGbps" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterfaceCount" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TotalLocalStorageGB" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.VCpuCount" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification": { + "additionalProperties": false, + "properties": { + "Ipv4Prefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6Add": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification": { + "additionalProperties": false, + "properties": { + "Ipv6Prefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateData": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.BlockDeviceMapping" + }, + "type": "array" + }, + "CapacityReservationSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CapacityReservationSpecification" + }, + "CpuOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CpuOptions" + }, + "CreditSpecification": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.CreditSpecification" + }, + "DisableApiStop": { + "type": "boolean" + }, + "DisableApiTermination": { + "type": "boolean" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticGpuSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.ElasticGpuSpecification" + }, + "type": "array" + }, + "ElasticInferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator" + }, + "type": "array" + }, + "EnclaveOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.EnclaveOptions" + }, + "HibernationOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.HibernationOptions" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.IamInstanceProfile" + }, + "ImageId": { + "type": "string" + }, + "InstanceInitiatedShutdownBehavior": { + "type": "string" + }, + "InstanceMarketOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceMarketOptions" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.InstanceRequirements" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "LicenseSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.LicenseSpecification" + }, + "type": "array" + }, + "MaintenanceOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MaintenanceOptions" + }, + "MetadataOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.MetadataOptions" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Monitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.NetworkInterface" + }, + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Placement" + }, + "PrivateDnsNameOptions": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateDnsNameOptions" + }, + "RamDiskId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.TagSpecification" + }, + "type": "array" + }, + "UserData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateElasticInferenceAccelerator": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LaunchTemplateTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.LicenseSpecification": { + "additionalProperties": false, + "properties": { + "LicenseConfigurationArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MaintenanceOptions": { + "additionalProperties": false, + "properties": { + "AutoRecovery": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryGiBPerVCpu": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MemoryMiB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.MetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpEndpoint": { + "type": "string" + }, + "HttpProtocolIpv6": { + "type": "string" + }, + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + }, + "InstanceMetadataTags": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Monitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.NetworkBandwidthGbps": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.NetworkInterface": { + "additionalProperties": false, + "properties": { + "AssociateCarrierIpAddress": { + "type": "boolean" + }, + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv4PrefixCount": { + "type": "number" + }, + "Ipv4Prefixes": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv4PrefixSpecification" + }, + "type": "array" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6Add" + }, + "type": "array" + }, + "Ipv6PrefixCount": { + "type": "number" + }, + "Ipv6Prefixes": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.Ipv6PrefixSpecification" + }, + "type": "array" + }, + "NetworkCardIndex": { + "type": "number" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate.PrivateIpAdd" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.NetworkInterfaceCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.Placement": { + "additionalProperties": false, + "properties": { + "Affinity": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "GroupId": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "HostId": { + "type": "string" + }, + "HostResourceGroupArn": { + "type": "string" + }, + "PartitionNumber": { + "type": "number" + }, + "SpreadDomain": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.PrivateDnsNameOptions": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.PrivateIpAdd": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.SpotOptions": { + "additionalProperties": false, + "properties": { + "BlockDurationMinutes": { + "type": "number" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "MaxPrice": { + "type": "string" + }, + "SpotInstanceType": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.TagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.TotalLocalStorageGB": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LaunchTemplate.VCpuCount": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::LocalGatewayRoute": { + "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": { + "DestinationCidrBlock": { + "type": "string" + }, + "LocalGatewayRouteTableId": { + "type": "string" + }, + "LocalGatewayVirtualInterfaceGroupId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + } + }, + "required": [ + "DestinationCidrBlock", + "LocalGatewayRouteTableId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::LocalGatewayRoute" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::LocalGatewayRouteTableVPCAssociation": { + "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": { + "LocalGatewayRouteTableId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "LocalGatewayRouteTableId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::LocalGatewayRouteTableVPCAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NatGateway": { + "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": { + "AllocationId": { + "type": "string" + }, + "ConnectivityType": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NatGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkAcl": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkAcl" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkAclEntry": { + "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": { + "CidrBlock": { + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "Icmp": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.Icmp" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "NetworkAclId": { + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry.PortRange" + }, + "Protocol": { + "type": "number" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "number" + } + }, + "required": [ + "NetworkAclId", + "Protocol", + "RuleAction", + "RuleNumber" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkAclEntry" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkAclEntry.Icmp": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "number" + }, + "Type": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkAclEntry.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "type": "number" + }, + "To": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope": { + "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": { + "ExcludePaths": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest" + }, + "type": "array" + }, + "MatchPaths": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkInsightsAccessScope" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.AccessScopePathRequest": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest" + }, + "Source": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest" + }, + "ThroughResources": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ThroughResourcesStatementRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest": { + "additionalProperties": false, + "properties": { + "DestinationAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DestinationPorts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DestinationPrefixLists": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocols": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourcePorts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourcePrefixLists": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.PathStatementRequest": { + "additionalProperties": false, + "properties": { + "PacketHeaderStatement": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.PacketHeaderStatementRequest" + }, + "ResourceStatement": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest": { + "additionalProperties": false, + "properties": { + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resources": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScope.ThroughResourcesStatementRequest": { + "additionalProperties": false, + "properties": { + "ResourceStatement": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope.ResourceStatementRequest" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAccessScopeAnalysis": { + "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": { + "NetworkInsightsAccessScopeId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "NetworkInsightsAccessScopeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkInsightsAccessScopeAnalysis" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis": { + "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": { + "AdditionalAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FilterInArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetworkInsightsPathId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "NetworkInsightsPathId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkInsightsAnalysis" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AdditionalDetail": { + "additionalProperties": false, + "properties": { + "AdditionalDetailType": { + "type": "string" + }, + "Component": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AlternatePathHint": { + "additionalProperties": false, + "properties": { + "ComponentArn": { + "type": "string" + }, + "ComponentId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + }, + "Egress": { + "type": "boolean" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "Protocol": { + "type": "string" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Id": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener": { + "additionalProperties": false, + "properties": { + "InstancePort": { + "type": "number" + }, + "LoadBalancerPort": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "Instance": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader": { + "additionalProperties": false, + "properties": { + "DestinationAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DestinationPortRanges": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "SourceAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourcePortRanges": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute": { + "additionalProperties": false, + "properties": { + "NatGatewayId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Origin": { + "type": "string" + }, + "State": { + "type": "string" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcPeeringConnectionId": { + "type": "string" + }, + "destinationCidr": { + "type": "string" + }, + "destinationPrefixListId": { + "type": "string" + }, + "egressOnlyInternetGatewayId": { + "type": "string" + }, + "gatewayId": { + "type": "string" + }, + "instanceId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + }, + "Direction": { + "type": "string" + }, + "PortRange": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "PrefixListId": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "SecurityGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.Explanation": { + "additionalProperties": false, + "properties": { + "Acl": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "AclRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule" + }, + "Address": { + "type": "string" + }, + "Addresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AttachedTo": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClassicLoadBalancerListener": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerListener" + }, + "Component": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "ComponentAccount": { + "type": "string" + }, + "ComponentRegion": { + "type": "string" + }, + "CustomerGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "Destination": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "DestinationVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "Direction": { + "type": "string" + }, + "ElasticLoadBalancerListener": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "ExplanationCode": { + "type": "string" + }, + "IngressRouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "InternetGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "LoadBalancerArn": { + "type": "string" + }, + "LoadBalancerListenerPort": { + "type": "number" + }, + "LoadBalancerTarget": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisLoadBalancerTarget" + }, + "LoadBalancerTargetGroup": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "LoadBalancerTargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "type": "array" + }, + "LoadBalancerTargetPort": { + "type": "number" + }, + "MissingComponent": { + "type": "string" + }, + "NatGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "NetworkInterface": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "PacketField": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.PortRange" + }, + "type": "array" + }, + "PrefixList": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "Protocols": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "RouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute" + }, + "SecurityGroup": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "SecurityGroupRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "type": "array" + }, + "SourceVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "State": { + "type": "string" + }, + "Subnet": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "SubnetRouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "TransitGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "TransitGatewayAttachment": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "TransitGatewayRouteTable": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "TransitGatewayRouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute" + }, + "Vpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "VpcPeeringConnection": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "VpnConnection": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "VpnGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "vpcEndpoint": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.PathComponent": { + "additionalProperties": false, + "properties": { + "AclRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisAclRule" + }, + "AdditionalDetails": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AdditionalDetail" + }, + "type": "array" + }, + "Component": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "DestinationVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "ElasticLoadBalancerListener": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "Explanations": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.Explanation" + }, + "type": "array" + }, + "InboundHeader": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader" + }, + "OutboundHeader": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisPacketHeader" + }, + "RouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisRouteTableRoute" + }, + "SecurityGroupRule": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisSecurityGroupRule" + }, + "SequenceNumber": { + "type": "number" + }, + "SourceVpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "Subnet": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "TransitGateway": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + }, + "TransitGatewayRouteTableRoute": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute" + }, + "Vpc": { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis.AnalysisComponent" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.PortRange": { + "additionalProperties": false, + "properties": { + "From": { + "type": "number" + }, + "To": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsAnalysis.TransitGatewayRouteTableRoute": { + "additionalProperties": false, + "properties": { + "AttachmentId": { + "type": "string" + }, + "DestinationCidr": { + "type": "string" + }, + "PrefixListId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "RouteOrigin": { + "type": "string" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::NetworkInsightsPath": { + "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": { + "Destination": { + "type": "string" + }, + "DestinationIp": { + "type": "string" + }, + "DestinationPort": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "SourceIp": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Destination", + "Protocol", + "Source" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkInsightsPath" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface": { + "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": { + "Description": { + "type": "string" + }, + "GroupSet": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InterfaceType": { + "type": "string" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.InstanceIpv6Address" + }, + "type": "array" + }, + "PrivateIpAddress": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::NetworkInterface.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SourceDestCheck": { + "type": "boolean" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkInterface" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterface.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "Primary", + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterfaceAttachment": { + "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": { + "DeleteOnTermination": { + "type": "boolean" + }, + "DeviceIndex": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + } + }, + "required": [ + "DeviceIndex", + "InstanceId", + "NetworkInterfaceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkInterfaceAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkInterfacePermission": { + "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": { + "AwsAccountId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "Permission": { + "type": "string" + } + }, + "required": [ + "AwsAccountId", + "NetworkInterfaceId", + "Permission" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkInterfacePermission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::NetworkPerformanceMetricSubscription": { + "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": { + "Destination": { + "type": "string" + }, + "Metric": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "Statistic": { + "type": "string" + } + }, + "required": [ + "Destination", + "Metric", + "Source", + "Statistic" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::NetworkPerformanceMetricSubscription" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::PlacementGroup": { + "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": { + "PartitionCount": { + "type": "number" + }, + "SpreadLevel": { + "type": "string" + }, + "Strategy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::PlacementGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::PrefixList": { + "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": { + "AddressFamily": { + "type": "string" + }, + "Entries": { + "items": { + "$ref": "#/definitions/AWS::EC2::PrefixList.Entry" + }, + "type": "array" + }, + "MaxEntries": { + "type": "number" + }, + "PrefixListName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AddressFamily", + "MaxEntries", + "PrefixListName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::PrefixList" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::PrefixList.Entry": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "Cidr" + ], + "type": "object" + }, + "AWS::EC2::Route": { + "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": { + "CarrierGatewayId": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationIpv6CidrBlock": { + "type": "string" + }, + "EgressOnlyInternetGatewayId": { + "type": "string" + }, + "GatewayId": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "LocalGatewayId": { + "type": "string" + }, + "NatGatewayId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "RouteTableId": { + "type": "string" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcEndpointId": { + "type": "string" + }, + "VpcPeeringConnectionId": { + "type": "string" + } + }, + "required": [ + "RouteTableId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Route" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::RouteTable": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::RouteTable" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup": { + "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": { + "GroupDescription": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "SecurityGroupEgress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Egress" + }, + "type": "array" + }, + "SecurityGroupIngress": { + "items": { + "$ref": "#/definitions/AWS::EC2::SecurityGroup.Ingress" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "GroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::SecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup.Egress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroup.Ingress": { + "additionalProperties": false, + "properties": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroupEgress": { + "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": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DestinationPrefixListId": { + "type": "string" + }, + "DestinationSecurityGroupId": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "GroupId", + "IpProtocol" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::SecurityGroupEgress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::SecurityGroupIngress": { + "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": { + "CidrIp": { + "type": "string" + }, + "CidrIpv6": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "GroupId": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "IpProtocol": { + "type": "string" + }, + "SourcePrefixListId": { + "type": "string" + }, + "SourceSecurityGroupId": { + "type": "string" + }, + "SourceSecurityGroupName": { + "type": "string" + }, + "SourceSecurityGroupOwnerId": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "IpProtocol" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::SecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet": { + "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": { + "SpotFleetRequestConfigData": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetRequestConfigData" + } + }, + "required": [ + "SpotFleetRequestConfigData" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::SpotFleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.AcceleratorCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancer": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.ClassicLoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancer" + }, + "type": "array" + } + }, + "required": [ + "ClassicLoadBalancers" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Version" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.GroupIdentifier": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.IamInstanceProfileSpecification": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceIpv6Address": { + "additionalProperties": false, + "properties": { + "Ipv6Address": { + "type": "string" + } + }, + "required": [ + "Ipv6Address" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification": { + "additionalProperties": false, + "properties": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "DeleteOnTermination": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "DeviceIndex": { + "type": "number" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Ipv6AddressCount": { + "type": "number" + }, + "Ipv6Addresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceIpv6Address" + }, + "type": "array" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddresses": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.PrivateIpAddressSpecification" + }, + "type": "array" + }, + "SecondaryPrivateIpAddressCount": { + "type": "number" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.InstanceRequirementsRequest": { + "additionalProperties": false, + "properties": { + "AcceleratorCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorCountRequest" + }, + "AcceleratorManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AcceleratorTotalMemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.AcceleratorTotalMemoryMiBRequest" + }, + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BareMetal": { + "type": "string" + }, + "BaselineEbsBandwidthMbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BaselineEbsBandwidthMbpsRequest" + }, + "BurstablePerformance": { + "type": "string" + }, + "CpuManufacturers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludedInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InstanceGenerations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocalStorage": { + "type": "string" + }, + "LocalStorageTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemoryGiBPerVCpu": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest" + }, + "MemoryMiB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.MemoryMiBRequest" + }, + "NetworkBandwidthGbps": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest" + }, + "NetworkInterfaceCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.NetworkInterfaceCountRequest" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "RequireHibernateSupport": { + "type": "boolean" + }, + "SpotMaxPricePercentageOverLowestPrice": { + "type": "number" + }, + "TotalLocalStorageGB": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TotalLocalStorageGBRequest" + }, + "VCpuCount": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.VCpuCountRangeRequest" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateConfig": { + "additionalProperties": false, + "properties": { + "LaunchTemplateSpecification": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.FleetLaunchTemplateSpecification" + }, + "Overrides": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateOverrides" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LaunchTemplateOverrides": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.LoadBalancersConfig": { + "additionalProperties": false, + "properties": { + "ClassicLoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.ClassicLoadBalancersConfig" + }, + "TargetGroupsConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroupsConfig" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryGiBPerVCpuRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.MemoryMiBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkBandwidthGbpsRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.NetworkInterfaceCountRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.PrivateIpAddressSpecification": { + "additionalProperties": false, + "properties": { + "Primary": { + "type": "boolean" + }, + "PrivateIpAddress": { + "type": "string" + } + }, + "required": [ + "PrivateIpAddress" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotCapacityRebalance": { + "additionalProperties": false, + "properties": { + "ReplacementStrategy": { + "type": "string" + }, + "TerminationDelay": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetLaunchSpecification": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.BlockDeviceMapping" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + }, + "IamInstanceProfile": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.IamInstanceProfileSpecification" + }, + "ImageId": { + "type": "string" + }, + "InstanceRequirements": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceRequirementsRequest" + }, + "InstanceType": { + "type": "string" + }, + "KernelId": { + "type": "string" + }, + "KeyName": { + "type": "string" + }, + "Monitoring": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetMonitoring" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.InstanceNetworkInterfaceSpecification" + }, + "type": "array" + }, + "Placement": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotPlacement" + }, + "RamdiskId": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.GroupIdentifier" + }, + "type": "array" + }, + "SpotPrice": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "type": "array" + }, + "UserData": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "ImageId" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetMonitoring": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetRequestConfigData": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "Context": { + "type": "string" + }, + "ExcessCapacityTerminationPolicy": { + "type": "string" + }, + "IamFleetRole": { + "type": "string" + }, + "InstanceInterruptionBehavior": { + "type": "string" + }, + "InstancePoolsToUseCount": { + "type": "number" + }, + "LaunchSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetLaunchSpecification" + }, + "type": "array" + }, + "LaunchTemplateConfigs": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LaunchTemplateConfig" + }, + "type": "array" + }, + "LoadBalancersConfig": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.LoadBalancersConfig" + }, + "OnDemandAllocationStrategy": { + "type": "string" + }, + "OnDemandMaxTotalPrice": { + "type": "string" + }, + "OnDemandTargetCapacity": { + "type": "number" + }, + "ReplaceUnhealthyInstances": { + "type": "boolean" + }, + "SpotMaintenanceStrategies": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotMaintenanceStrategies" + }, + "SpotMaxTotalPrice": { + "type": "string" + }, + "SpotPrice": { + "type": "string" + }, + "TagSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotFleetTagSpecification" + }, + "type": "array" + }, + "TargetCapacity": { + "type": "number" + }, + "TargetCapacityUnitType": { + "type": "string" + }, + "TerminateInstancesWithExpiration": { + "type": "boolean" + }, + "Type": { + "type": "string" + }, + "ValidFrom": { + "type": "string" + }, + "ValidUntil": { + "type": "string" + } + }, + "required": [ + "IamFleetRole", + "TargetCapacity" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotFleetTagSpecification": { + "additionalProperties": false, + "properties": { + "ResourceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotMaintenanceStrategies": { + "additionalProperties": false, + "properties": { + "CapacityRebalance": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.SpotCapacityRebalance" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.SpotPlacement": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Tenancy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroup": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TargetGroupsConfig": { + "additionalProperties": false, + "properties": { + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::EC2::SpotFleet.TargetGroup" + }, + "type": "array" + } + }, + "required": [ + "TargetGroups" + ], + "type": "object" + }, + "AWS::EC2::SpotFleet.TotalLocalStorageGBRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::SpotFleet.VCpuCountRangeRequest": { + "additionalProperties": false, + "properties": { + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EC2::Subnet": { + "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": { + "AssignIpv6AddressOnCreation": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneId": { + "type": "string" + }, + "CidrBlock": { + "type": "string" + }, + "EnableDns64": { + "type": "boolean" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6Native": { + "type": "boolean" + }, + "MapPublicIpOnLaunch": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "PrivateDnsNameOptionsOnLaunch": { + "$ref": "#/definitions/AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Subnet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::Subnet.PrivateDnsNameOptionsOnLaunch": { + "additionalProperties": false, + "properties": { + "EnableResourceNameDnsAAAARecord": { + "type": "boolean" + }, + "EnableResourceNameDnsARecord": { + "type": "boolean" + }, + "HostnameType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::SubnetCidrBlock": { + "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": { + "Ipv6CidrBlock": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "Ipv6CidrBlock", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::SubnetCidrBlock" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::SubnetNetworkAclAssociation": { + "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": { + "NetworkAclId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "NetworkAclId", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::SubnetNetworkAclAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::SubnetRouteTableAssociation": { + "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": { + "RouteTableId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "RouteTableId", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::SubnetRouteTableAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TrafficMirrorFilter": { + "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": { + "Description": { + "type": "string" + }, + "NetworkServices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TrafficMirrorFilter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::TrafficMirrorFilterRule": { + "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": { + "Description": { + "type": "string" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "DestinationPortRange": { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange" + }, + "Protocol": { + "type": "number" + }, + "RuleAction": { + "type": "string" + }, + "RuleNumber": { + "type": "number" + }, + "SourceCidrBlock": { + "type": "string" + }, + "SourcePortRange": { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange" + }, + "TrafficDirection": { + "type": "string" + }, + "TrafficMirrorFilterId": { + "type": "string" + } + }, + "required": [ + "DestinationCidrBlock", + "RuleAction", + "RuleNumber", + "SourceCidrBlock", + "TrafficDirection", + "TrafficMirrorFilterId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TrafficMirrorFilterRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TrafficMirrorFilterRule.TrafficMirrorPortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::EC2::TrafficMirrorSession": { + "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": { + "Description": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PacketLength": { + "type": "number" + }, + "SessionNumber": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrafficMirrorFilterId": { + "type": "string" + }, + "TrafficMirrorTargetId": { + "type": "string" + }, + "VirtualNetworkId": { + "type": "number" + } + }, + "required": [ + "NetworkInterfaceId", + "SessionNumber", + "TrafficMirrorFilterId", + "TrafficMirrorTargetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TrafficMirrorSession" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TrafficMirrorTarget": { + "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": { + "Description": { + "type": "string" + }, + "GatewayLoadBalancerEndpointId": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "NetworkLoadBalancerArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TrafficMirrorTarget" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::TransitGateway": { + "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": { + "AmazonSideAsn": { + "type": "number" + }, + "AssociationDefaultRouteTableId": { + "type": "string" + }, + "AutoAcceptSharedAttachments": { + "type": "string" + }, + "DefaultRouteTableAssociation": { + "type": "string" + }, + "DefaultRouteTablePropagation": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DnsSupport": { + "type": "string" + }, + "MulticastSupport": { + "type": "string" + }, + "PropagationDefaultRouteTableId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayCidrBlocks": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpnEcmpSupport": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayAttachment": { + "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": { + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment.Options" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayAttachment.Options": { + "additionalProperties": false, + "properties": { + "ApplianceModeSupport": { + "type": "string" + }, + "DnsSupport": { + "type": "string" + }, + "Ipv6Support": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayConnect": { + "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": { + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransportTransitGatewayAttachmentId": { + "type": "string" + } + }, + "required": [ + "Options", + "TransportTransitGatewayAttachmentId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayConnect" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayConnect.TransitGatewayConnectOptions": { + "additionalProperties": false, + "properties": { + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastDomain": { + "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": { + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain.Options" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + } + }, + "required": [ + "TransitGatewayId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayMulticastDomain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastDomain.Options": { + "additionalProperties": false, + "properties": { + "AutoAcceptSharedAssociations": { + "type": "string" + }, + "Igmpv2Support": { + "type": "string" + }, + "StaticSourcesSupport": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastDomainAssociation": { + "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": { + "SubnetId": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "type": "string" + } + }, + "required": [ + "SubnetId", + "TransitGatewayAttachmentId", + "TransitGatewayMulticastDomainId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayMulticastDomainAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastGroupMember": { + "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": { + "GroupIpAddress": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "type": "string" + } + }, + "required": [ + "GroupIpAddress", + "NetworkInterfaceId", + "TransitGatewayMulticastDomainId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayMulticastGroupMember" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayMulticastGroupSource": { + "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": { + "GroupIpAddress": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "TransitGatewayMulticastDomainId": { + "type": "string" + } + }, + "required": [ + "GroupIpAddress", + "NetworkInterfaceId", + "TransitGatewayMulticastDomainId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayMulticastGroupSource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayPeeringAttachment": { + "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": { + "PeerAccountId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerTransitGatewayId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + } + }, + "required": [ + "PeerAccountId", + "PeerRegion", + "PeerTransitGatewayId", + "TransitGatewayId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayPeeringAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayPeeringAttachment.PeeringAttachmentStatus": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "string" + }, + "Message": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::TransitGatewayRoute": { + "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": { + "Blackhole": { + "type": "boolean" + }, + "DestinationCidrBlock": { + "type": "string" + }, + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { + "type": "string" + } + }, + "required": [ + "TransitGatewayRouteTableId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayRoute" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayRouteTable": { + "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": { + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + } + }, + "required": [ + "TransitGatewayId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayRouteTable" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayRouteTableAssociation": { + "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": { + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { + "type": "string" + } + }, + "required": [ + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayRouteTableAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayRouteTablePropagation": { + "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": { + "TransitGatewayAttachmentId": { + "type": "string" + }, + "TransitGatewayRouteTableId": { + "type": "string" + } + }, + "required": [ + "TransitGatewayAttachmentId", + "TransitGatewayRouteTableId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayRouteTablePropagation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayVpcAttachment": { + "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": { + "AddSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Options": { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment.Options" + }, + "RemoveSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SubnetIds", + "TransitGatewayId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::TransitGatewayVpcAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::TransitGatewayVpcAttachment.Options": { + "additionalProperties": false, + "properties": { + "ApplianceModeSupport": { + "type": "string" + }, + "DnsSupport": { + "type": "string" + }, + "Ipv6Support": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPC": { + "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": { + "CidrBlock": { + "type": "string" + }, + "EnableDnsHostnames": { + "type": "boolean" + }, + "EnableDnsSupport": { + "type": "boolean" + }, + "InstanceTenancy": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPC" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::VPCCidrBlock": { + "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": { + "AmazonProvidedIpv6CidrBlock": { + "type": "boolean" + }, + "CidrBlock": { + "type": "string" + }, + "Ipv4IpamPoolId": { + "type": "string" + }, + "Ipv4NetmaskLength": { + "type": "number" + }, + "Ipv6CidrBlock": { + "type": "string" + }, + "Ipv6IpamPoolId": { + "type": "string" + }, + "Ipv6NetmaskLength": { + "type": "number" + }, + "Ipv6Pool": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCCidrBlock" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCDHCPOptionsAssociation": { + "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": { + "DhcpOptionsId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "DhcpOptionsId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCDHCPOptionsAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpoint": { + "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": { + "PolicyDocument": { + "type": "object" + }, + "PrivateDnsEnabled": { + "type": "boolean" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointType": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "ServiceName", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpointConnectionNotification": { + "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": { + "ConnectionEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionNotificationArn": { + "type": "string" + }, + "ServiceId": { + "type": "string" + }, + "VPCEndpointId": { + "type": "string" + } + }, + "required": [ + "ConnectionEvents", + "ConnectionNotificationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpointConnectionNotification" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpointService": { + "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": { + "AcceptanceRequired": { + "type": "boolean" + }, + "ContributorInsightsEnabled": { + "type": "boolean" + }, + "GatewayLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NetworkLoadBalancerArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PayerResponsibility": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpointService" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EC2::VPCEndpointServicePermissions": { + "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": { + "AllowedPrincipals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceId": { + "type": "string" + } + }, + "required": [ + "ServiceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCEndpointServicePermissions" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCGatewayAttachment": { + "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": { + "InternetGatewayId": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "required": [ + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCGatewayAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPCPeeringConnection": { + "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": { + "PeerOwnerId": { + "type": "string" + }, + "PeerRegion": { + "type": "string" + }, + "PeerRoleArn": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "PeerVpcId", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPCPeeringConnection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPNConnection": { + "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": { + "CustomerGatewayId": { + "type": "string" + }, + "StaticRoutesOnly": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitGatewayId": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "VpnGatewayId": { + "type": "string" + }, + "VpnTunnelOptionsSpecifications": { + "items": { + "$ref": "#/definitions/AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification" + }, + "type": "array" + } + }, + "required": [ + "CustomerGatewayId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPNConnection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPNConnection.VpnTunnelOptionsSpecification": { + "additionalProperties": false, + "properties": { + "PreSharedKey": { + "type": "string" + }, + "TunnelInsideCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EC2::VPNConnectionRoute": { + "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": { + "DestinationCidrBlock": { + "type": "string" + }, + "VpnConnectionId": { + "type": "string" + } + }, + "required": [ + "DestinationCidrBlock", + "VpnConnectionId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPNConnectionRoute" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPNGateway": { + "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": { + "AmazonSideAsn": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPNGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VPNGatewayRoutePropagation": { + "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": { + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpnGatewayId": { + "type": "string" + } + }, + "required": [ + "RouteTableIds", + "VpnGatewayId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VPNGatewayRoutePropagation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::Volume": { + "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": { + "AutoEnableIO": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "MultiAttachEnabled": { + "type": "boolean" + }, + "OutpostArn": { + "type": "string" + }, + "Size": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Throughput": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::Volume" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EC2::VolumeAttachment": { + "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": { + "Device": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "Device", + "InstanceId", + "VolumeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EC2::VolumeAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::PublicRepository": { + "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": { + "RepositoryCatalogData": { + "$ref": "#/definitions/AWS::ECR::PublicRepository.RepositoryCatalogData" + }, + "RepositoryName": { + "type": "string" + }, + "RepositoryPolicyText": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::PublicRepository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::PublicRepository.RepositoryCatalogData": { + "additionalProperties": false, + "properties": { + "AboutText": { + "type": "string" + }, + "Architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OperatingSystems": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RepositoryDescription": { + "type": "string" + }, + "UsageText": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECR::PullThroughCacheRule": { + "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": { + "EcrRepositoryPrefix": { + "type": "string" + }, + "UpstreamRegistryUrl": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::PullThroughCacheRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::RegistryPolicy": { + "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": { + "PolicyText": { + "type": "object" + } + }, + "required": [ + "PolicyText" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::RegistryPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration": { + "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": { + "ReplicationConfiguration": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationConfiguration" + } + }, + "required": [ + "ReplicationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::ReplicationConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "Region": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "required": [ + "Region", + "RegistryId" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.ReplicationRule": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.ReplicationDestination" + }, + "type": "array" + }, + "RepositoryFilters": { + "items": { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration.RepositoryFilter" + }, + "type": "array" + } + }, + "required": [ + "Destinations" + ], + "type": "object" + }, + "AWS::ECR::ReplicationConfiguration.RepositoryFilter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "FilterType": { + "type": "string" + } + }, + "required": [ + "Filter", + "FilterType" + ], + "type": "object" + }, + "AWS::ECR::Repository": { + "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": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::ECR::Repository.EncryptionConfiguration" + }, + "ImageScanningConfiguration": { + "$ref": "#/definitions/AWS::ECR::Repository.ImageScanningConfiguration" + }, + "ImageTagMutability": { + "type": "string" + }, + "LifecyclePolicy": { + "$ref": "#/definitions/AWS::ECR::Repository.LifecyclePolicy" + }, + "RepositoryName": { + "type": "string" + }, + "RepositoryPolicyText": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECR::Repository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECR::Repository.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KmsKey": { + "type": "string" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "AWS::ECR::Repository.ImageScanningConfiguration": { + "additionalProperties": false, + "properties": { + "ScanOnPush": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ECR::Repository.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "LifecyclePolicyText": { + "type": "string" + }, + "RegistryId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::CapacityProvider": { + "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": { + "AutoScalingGroupProvider": { + "$ref": "#/definitions/AWS::ECS::CapacityProvider.AutoScalingGroupProvider" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AutoScalingGroupProvider" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::CapacityProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECS::CapacityProvider.AutoScalingGroupProvider": { + "additionalProperties": false, + "properties": { + "AutoScalingGroupArn": { + "type": "string" + }, + "ManagedScaling": { + "$ref": "#/definitions/AWS::ECS::CapacityProvider.ManagedScaling" + }, + "ManagedTerminationProtection": { + "type": "string" + } + }, + "required": [ + "AutoScalingGroupArn" + ], + "type": "object" + }, + "AWS::ECS::CapacityProvider.ManagedScaling": { + "additionalProperties": false, + "properties": { + "InstanceWarmupPeriod": { + "type": "number" + }, + "MaximumScalingStepSize": { + "type": "number" + }, + "MinimumScalingStepSize": { + "type": "number" + }, + "Status": { + "type": "string" + }, + "TargetCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster": { + "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": { + "CapacityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterName": { + "type": "string" + }, + "ClusterSettings": { + "items": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterSettings" + }, + "type": "array" + }, + "Configuration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ClusterConfiguration" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::ECS::Cluster.CapacityProviderStrategyItem" + }, + "type": "array" + }, + "ServiceConnectDefaults": { + "$ref": "#/definitions/AWS::ECS::Cluster.ServiceConnectDefaults" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Cluster.CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "number" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ClusterConfiguration": { + "additionalProperties": false, + "properties": { + "ExecuteCommandConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandConfiguration" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ClusterSettings": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::Cluster.ExecuteCommandLogConfiguration" + }, + "Logging": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ExecuteCommandLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryptionEnabled": { + "type": "boolean" + }, + "CloudWatchLogGroupName": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3EncryptionEnabled": { + "type": "boolean" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Cluster.ServiceConnectDefaults": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::ClusterCapacityProviderAssociations": { + "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": { + "CapacityProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DefaultCapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy" + }, + "type": "array" + } + }, + "required": [ + "CapacityProviders", + "Cluster", + "DefaultCapacityProviderStrategy" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::ClusterCapacityProviderAssociations" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECS::ClusterCapacityProviderAssociations.CapacityProviderStrategy": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "number" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "AWS::ECS::PrimaryTaskSet": { + "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": { + "Cluster": { + "type": "string" + }, + "Service": { + "type": "string" + }, + "TaskSetId": { + "type": "string" + } + }, + "required": [ + "Cluster", + "Service", + "TaskSetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::PrimaryTaskSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECS::Service": { + "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": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.CapacityProviderStrategyItem" + }, + "type": "array" + }, + "Cluster": { + "type": "string" + }, + "DeploymentConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentConfiguration" + }, + "DeploymentController": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentController" + }, + "DesiredCount": { + "type": "number" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "HealthCheckGracePeriodSeconds": { + "type": "number" + }, + "LaunchType": { + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "type": "string" + }, + "PropagateTags": { + "type": "string" + }, + "Role": { + "type": "string" + }, + "SchedulingStrategy": { + "type": "string" + }, + "ServiceConnectConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectConfiguration" + }, + "ServiceName": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.ServiceRegistry" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::Service" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service.AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::Service.CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "number" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::Service.DeploymentAlarms": { + "additionalProperties": false, + "properties": { + "AlarmNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "AlarmNames", + "Enable", + "Rollback" + ], + "type": "object" + }, + "AWS::ECS::Service.DeploymentCircuitBreaker": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + }, + "Rollback": { + "type": "boolean" + } + }, + "required": [ + "Enable", + "Rollback" + ], + "type": "object" + }, + "AWS::ECS::Service.DeploymentConfiguration": { + "additionalProperties": false, + "properties": { + "Alarms": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentAlarms" + }, + "DeploymentCircuitBreaker": { + "$ref": "#/definitions/AWS::ECS::Service.DeploymentCircuitBreaker" + }, + "MaximumPercent": { + "type": "number" + }, + "MinimumHealthyPercent": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::Service.DeploymentController": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Service.LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "number" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::Service.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.Secret" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::Service.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.AwsVpcConfiguration" + } + }, + "type": "object" + }, + "AWS::ECS::Service.PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service.PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::Service.Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "AWS::ECS::Service.ServiceConnectClientAlias": { + "additionalProperties": false, + "properties": { + "DnsName": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Port" + ], + "type": "object" + }, + "AWS::ECS::Service.ServiceConnectConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::Service.LogConfiguration" + }, + "Namespace": { + "type": "string" + }, + "Services": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectService" + }, + "type": "array" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::ECS::Service.ServiceConnectService": { + "additionalProperties": false, + "properties": { + "ClientAliases": { + "items": { + "$ref": "#/definitions/AWS::ECS::Service.ServiceConnectClientAlias" + }, + "type": "array" + }, + "DiscoveryName": { + "type": "string" + }, + "IngressPortOverride": { + "type": "number" + }, + "PortName": { + "type": "string" + } + }, + "required": [ + "PortName" + ], + "type": "object" + }, + "AWS::ECS::Service.ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition": { + "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": { + "ContainerDefinitions": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDefinition" + }, + "type": "array" + }, + "Cpu": { + "type": "string" + }, + "EphemeralStorage": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "InferenceAccelerators": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.InferenceAccelerator" + }, + "type": "array" + }, + "IpcMode": { + "type": "string" + }, + "Memory": { + "type": "string" + }, + "NetworkMode": { + "type": "string" + }, + "PidMode": { + "type": "string" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint" + }, + "type": "array" + }, + "ProxyConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ProxyConfiguration" + }, + "RequiresCompatibilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RuntimePlatform": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RuntimePlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskRoleArn": { + "type": "string" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Volume" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::TaskDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.AuthorizationConfig": { + "additionalProperties": false, + "properties": { + "AccessPointId": { + "type": "string" + }, + "IAM": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.ContainerDefinition": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cpu": { + "type": "number" + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ContainerDependency" + }, + "type": "array" + }, + "DisableNetworking": { + "type": "boolean" + }, + "DnsSearchDomains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DnsServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DockerLabels": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DockerSecurityOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EntryPoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "type": "array" + }, + "EnvironmentFiles": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EnvironmentFile" + }, + "type": "array" + }, + "Essential": { + "type": "boolean" + }, + "ExtraHosts": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostEntry" + }, + "type": "array" + }, + "FirelensConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.FirelensConfiguration" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HealthCheck" + }, + "Hostname": { + "type": "string" + }, + "Image": { + "type": "string" + }, + "Interactive": { + "type": "boolean" + }, + "Links": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LinuxParameters": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LinuxParameters" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.LogConfiguration" + }, + "Memory": { + "type": "number" + }, + "MemoryReservation": { + "type": "number" + }, + "MountPoints": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.MountPoint" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "PortMappings": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.PortMapping" + }, + "type": "array" + }, + "Privileged": { + "type": "boolean" + }, + "PseudoTerminal": { + "type": "boolean" + }, + "ReadonlyRootFilesystem": { + "type": "boolean" + }, + "RepositoryCredentials": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.RepositoryCredentials" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.ResourceRequirement" + }, + "type": "array" + }, + "Secrets": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret" + }, + "type": "array" + }, + "StartTimeout": { + "type": "number" + }, + "StopTimeout": { + "type": "number" + }, + "SystemControls": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.SystemControl" + }, + "type": "array" + }, + "Ulimits": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Ulimit" + }, + "type": "array" + }, + "User": { + "type": "string" + }, + "VolumesFrom": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.VolumeFrom" + }, + "type": "array" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "required": [ + "Image", + "Name" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.ContainerDependency": { + "additionalProperties": false, + "properties": { + "Condition": { + "type": "string" + }, + "ContainerName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Device": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "HostPath": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.DockerVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Autoprovision": { + "type": "boolean" + }, + "Driver": { + "type": "string" + }, + "DriverOpts": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Labels": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.EFSVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "AuthorizationConfig": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.AuthorizationConfig" + }, + "FilesystemId": { + "type": "string" + }, + "RootDirectory": { + "type": "string" + }, + "TransitEncryption": { + "type": "string" + }, + "TransitEncryptionPort": { + "type": "number" + } + }, + "required": [ + "FilesystemId" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.EnvironmentFile": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.EphemeralStorage": { + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.FirelensConfiguration": { + "additionalProperties": false, + "properties": { + "Options": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HealthCheck": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Interval": { + "type": "number" + }, + "Retries": { + "type": "number" + }, + "StartPeriod": { + "type": "number" + }, + "Timeout": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostEntry": { + "additionalProperties": false, + "properties": { + "Hostname": { + "type": "string" + }, + "IpAddress": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.HostVolumeProperties": { + "additionalProperties": false, + "properties": { + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.InferenceAccelerator": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "DeviceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KernelCapabilities": { + "additionalProperties": false, + "properties": { + "Add": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Drop": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.KeyValuePair": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LinuxParameters": { + "additionalProperties": false, + "properties": { + "Capabilities": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KernelCapabilities" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Device" + }, + "type": "array" + }, + "InitProcessEnabled": { + "type": "boolean" + }, + "MaxSwap": { + "type": "number" + }, + "SharedMemorySize": { + "type": "number" + }, + "Swappiness": { + "type": "number" + }, + "Tmpfs": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Tmpfs" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogDriver": { + "type": "string" + }, + "Options": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "SecretOptions": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.Secret" + }, + "type": "array" + } + }, + "required": [ + "LogDriver" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.MountPoint": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "SourceVolume": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.PortMapping": { + "additionalProperties": false, + "properties": { + "AppProtocol": { + "type": "string" + }, + "ContainerPort": { + "type": "number" + }, + "ContainerPortRange": { + "type": "string" + }, + "HostPort": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.ProxyConfiguration": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ProxyConfigurationProperties": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.KeyValuePair" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.RepositoryCredentials": { + "additionalProperties": false, + "properties": { + "CredentialsParameter": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.ResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.RuntimePlatform": { + "additionalProperties": false, + "properties": { + "CpuArchitecture": { + "type": "string" + }, + "OperatingSystemFamily": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.Secret": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ValueFrom": { + "type": "string" + } + }, + "required": [ + "Name", + "ValueFrom" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.SystemControl": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.TaskDefinitionPlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Tmpfs": { + "additionalProperties": false, + "properties": { + "ContainerPath": { + "type": "string" + }, + "MountOptions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Size": { + "type": "number" + } + }, + "required": [ + "Size" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Ulimit": { + "additionalProperties": false, + "properties": { + "HardLimit": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "SoftLimit": { + "type": "number" + } + }, + "required": [ + "HardLimit", + "Name", + "SoftLimit" + ], + "type": "object" + }, + "AWS::ECS::TaskDefinition.Volume": { + "additionalProperties": false, + "properties": { + "DockerVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.DockerVolumeConfiguration" + }, + "EFSVolumeConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.EFSVolumeConfiguration" + }, + "Host": { + "$ref": "#/definitions/AWS::ECS::TaskDefinition.HostVolumeProperties" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskDefinition.VolumeFrom": { + "additionalProperties": false, + "properties": { + "ReadOnly": { + "type": "boolean" + }, + "SourceContainer": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskSet": { + "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": { + "Cluster": { + "type": "string" + }, + "ExternalId": { + "type": "string" + }, + "LaunchType": { + "type": "string" + }, + "LoadBalancers": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskSet.LoadBalancer" + }, + "type": "array" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskSet.NetworkConfiguration" + }, + "PlatformVersion": { + "type": "string" + }, + "Scale": { + "$ref": "#/definitions/AWS::ECS::TaskSet.Scale" + }, + "Service": { + "type": "string" + }, + "ServiceRegistries": { + "items": { + "$ref": "#/definitions/AWS::ECS::TaskSet.ServiceRegistry" + }, + "type": "array" + }, + "TaskDefinition": { + "type": "string" + } + }, + "required": [ + "Cluster", + "Service", + "TaskDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ECS::TaskSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ECS::TaskSet.AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "AWS::ECS::TaskSet.LoadBalancer": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "number" + }, + "LoadBalancerName": { + "type": "string" + }, + "TargetGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ECS::TaskSet.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AWS::ECS::TaskSet.AwsVpcConfiguration" + } + }, + "type": "object" + }, + "AWS::ECS::TaskSet.Scale": { + "additionalProperties": false, + "properties": { + "Unit": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ECS::TaskSet.ServiceRegistry": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "RegistryArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::AccessPoint": { + "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": { + "AccessPointTags": { + "items": { + "$ref": "#/definitions/AWS::EFS::AccessPoint.AccessPointTag" + }, + "type": "array" + }, + "ClientToken": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "PosixUser": { + "$ref": "#/definitions/AWS::EFS::AccessPoint.PosixUser" + }, + "RootDirectory": { + "$ref": "#/definitions/AWS::EFS::AccessPoint.RootDirectory" + } + }, + "required": [ + "FileSystemId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EFS::AccessPoint.AccessPointTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::AccessPoint.CreationInfo": { + "additionalProperties": false, + "properties": { + "OwnerGid": { + "type": "string" + }, + "OwnerUid": { + "type": "string" + }, + "Permissions": { + "type": "string" + } + }, + "required": [ + "OwnerGid", + "OwnerUid", + "Permissions" + ], + "type": "object" + }, + "AWS::EFS::AccessPoint.PosixUser": { + "additionalProperties": false, + "properties": { + "Gid": { + "type": "string" + }, + "SecondaryGids": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Uid": { + "type": "string" + } + }, + "required": [ + "Gid", + "Uid" + ], + "type": "object" + }, + "AWS::EFS::AccessPoint.RootDirectory": { + "additionalProperties": false, + "properties": { + "CreationInfo": { + "$ref": "#/definitions/AWS::EFS::AccessPoint.CreationInfo" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::FileSystem": { + "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": { + "AvailabilityZoneName": { + "type": "string" + }, + "BackupPolicy": { + "$ref": "#/definitions/AWS::EFS::FileSystem.BackupPolicy" + }, + "BypassPolicyLockoutSafetyCheck": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "FileSystemPolicy": { + "type": "object" + }, + "FileSystemTags": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.ElasticFileSystemTag" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "LifecyclePolicies": { + "items": { + "$ref": "#/definitions/AWS::EFS::FileSystem.LifecyclePolicy" + }, + "type": "array" + }, + "PerformanceMode": { + "type": "string" + }, + "ProvisionedThroughputInMibps": { + "type": "number" + }, + "ThroughputMode": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::FileSystem" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.BackupPolicy": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.ElasticFileSystemTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EFS::FileSystem.LifecyclePolicy": { + "additionalProperties": false, + "properties": { + "TransitionToIA": { + "type": "string" + }, + "TransitionToPrimaryStorageClass": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EFS::MountTarget": { + "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": { + "FileSystemId": { + "type": "string" + }, + "IpAddress": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "FileSystemId", + "SecurityGroups", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EFS::MountTarget" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Addon": { + "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": { + "AddonName": { + "type": "string" + }, + "AddonVersion": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "ConfigurationValues": { + "type": "string" + }, + "ResolveConflicts": { + "type": "string" + }, + "ServiceAccountRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AddonName", + "ClusterName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Addon" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster": { + "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": { + "EncryptionConfig": { + "items": { + "$ref": "#/definitions/AWS::EKS::Cluster.EncryptionConfig" + }, + "type": "array" + }, + "KubernetesNetworkConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.KubernetesNetworkConfig" + }, + "Logging": { + "$ref": "#/definitions/AWS::EKS::Cluster.Logging" + }, + "Name": { + "type": "string" + }, + "OutpostConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.OutpostConfig" + }, + "ResourcesVpcConfig": { + "$ref": "#/definitions/AWS::EKS::Cluster.ResourcesVpcConfig" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "ResourcesVpcConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Cluster.ClusterLogging": { + "additionalProperties": false, + "properties": { + "EnabledTypes": { + "items": { + "$ref": "#/definitions/AWS::EKS::Cluster.LoggingTypeConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.ControlPlanePlacement": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.EncryptionConfig": { + "additionalProperties": false, + "properties": { + "Provider": { + "$ref": "#/definitions/AWS::EKS::Cluster.Provider" + }, + "Resources": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.KubernetesNetworkConfig": { + "additionalProperties": false, + "properties": { + "IpFamily": { + "type": "string" + }, + "ServiceIpv4Cidr": { + "type": "string" + }, + "ServiceIpv6Cidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.Logging": { + "additionalProperties": false, + "properties": { + "ClusterLogging": { + "$ref": "#/definitions/AWS::EKS::Cluster.ClusterLogging" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.LoggingTypeConfig": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.OutpostConfig": { + "additionalProperties": false, + "properties": { + "ControlPlaneInstanceType": { + "type": "string" + }, + "ControlPlanePlacement": { + "$ref": "#/definitions/AWS::EKS::Cluster.ControlPlanePlacement" + }, + "OutpostArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ControlPlaneInstanceType", + "OutpostArns" + ], + "type": "object" + }, + "AWS::EKS::Cluster.Provider": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Cluster.ResourcesVpcConfig": { + "additionalProperties": false, + "properties": { + "EndpointPrivateAccess": { + "type": "boolean" + }, + "EndpointPublicAccess": { + "type": "boolean" + }, + "PublicAccessCidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "AWS::EKS::FargateProfile": { + "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": { + "ClusterName": { + "type": "string" + }, + "FargateProfileName": { + "type": "string" + }, + "PodExecutionRoleArn": { + "type": "string" + }, + "Selectors": { + "items": { + "$ref": "#/definitions/AWS::EKS::FargateProfile.Selector" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ClusterName", + "PodExecutionRoleArn", + "Selectors" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::FargateProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::FargateProfile.Label": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EKS::FargateProfile.Selector": { + "additionalProperties": false, + "properties": { + "Labels": { + "items": { + "$ref": "#/definitions/AWS::EKS::FargateProfile.Label" + }, + "type": "array" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "Namespace" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig": { + "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": { + "ClusterName": { + "type": "string" + }, + "IdentityProviderConfigName": { + "type": "string" + }, + "Oidc": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::IdentityProviderConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.OidcIdentityProviderConfig": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "GroupsClaim": { + "type": "string" + }, + "GroupsPrefix": { + "type": "string" + }, + "IssuerUrl": { + "type": "string" + }, + "RequiredClaims": { + "items": { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig.RequiredClaim" + }, + "type": "array" + }, + "UsernameClaim": { + "type": "string" + }, + "UsernamePrefix": { + "type": "string" + } + }, + "required": [ + "ClientId", + "IssuerUrl" + ], + "type": "object" + }, + "AWS::EKS::IdentityProviderConfig.RequiredClaim": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EKS::Nodegroup": { + "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": { + "AmiType": { + "type": "string" + }, + "CapacityType": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "DiskSize": { + "type": "number" + }, + "ForceUpdateEnabled": { + "type": "boolean" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Labels": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.LaunchTemplateSpecification" + }, + "NodeRole": { + "type": "string" + }, + "NodegroupName": { + "type": "string" + }, + "ReleaseVersion": { + "type": "string" + }, + "RemoteAccess": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.RemoteAccess" + }, + "ScalingConfig": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.ScalingConfig" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Taints": { + "items": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.Taint" + }, + "type": "array" + }, + "UpdateConfig": { + "$ref": "#/definitions/AWS::EKS::Nodegroup.UpdateConfig" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "ClusterName", + "NodeRole", + "Subnets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EKS::Nodegroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EKS::Nodegroup.LaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Nodegroup.RemoteAccess": { + "additionalProperties": false, + "properties": { + "Ec2SshKey": { + "type": "string" + }, + "SourceSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Ec2SshKey" + ], + "type": "object" + }, + "AWS::EKS::Nodegroup.ScalingConfig": { + "additionalProperties": false, + "properties": { + "DesiredSize": { + "type": "number" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EKS::Nodegroup.Taint": { + "additionalProperties": false, + "properties": { + "Effect": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EKS::Nodegroup.UpdateConfig": { + "additionalProperties": false, + "properties": { + "MaxUnavailable": { + "type": "number" + }, + "MaxUnavailablePercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster": { + "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": { + "AdditionalInfo": { + "type": "object" + }, + "Applications": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Application" + }, + "type": "array" + }, + "AutoScalingRole": { + "type": "string" + }, + "AutoTerminationPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoTerminationPolicy" + }, + "BootstrapActions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.BootstrapActionConfig" + }, + "type": "array" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsRootVolumeSize": { + "type": "number" + }, + "Instances": { + "$ref": "#/definitions/AWS::EMR::Cluster.JobFlowInstancesConfig" + }, + "JobFlowRole": { + "type": "string" + }, + "KerberosAttributes": { + "$ref": "#/definitions/AWS::EMR::Cluster.KerberosAttributes" + }, + "LogEncryptionKmsKeyId": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "ManagedScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.ManagedScalingPolicy" + }, + "Name": { + "type": "string" + }, + "OSReleaseLabel": { + "type": "string" + }, + "ReleaseLabel": { + "type": "string" + }, + "ScaleDownBehavior": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "StepConcurrencyLevel": { + "type": "number" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.StepConfig" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VisibleToAllUsers": { + "type": "boolean" + } + }, + "required": [ + "Instances", + "JobFlowRole", + "Name", + "ServiceRole" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Application": { + "additionalProperties": false, + "properties": { + "AdditionalInfo": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::Cluster.AutoTerminationPolicy": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.BootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ScriptBootstrapAction": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScriptBootstrapActionConfig" + } + }, + "required": [ + "Name", + "ScriptBootstrapAction" + ], + "type": "object" + }, + "AWS::EMR::Cluster.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ComputeLimits": { + "additionalProperties": false, + "properties": { + "MaximumCapacityUnits": { + "type": "number" + }, + "MaximumCoreCapacityUnits": { + "type": "number" + }, + "MaximumOnDemandCapacityUnits": { + "type": "number" + }, + "MinimumCapacityUnits": { + "type": "number" + }, + "UnitType": { + "type": "string" + } + }, + "required": [ + "MaximumCapacityUnits", + "MinimumCapacityUnits", + "UnitType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::Cluster.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetConfig": { + "additionalProperties": false, + "properties": { + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::Cluster.SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.InstanceGroupConfig": { + "additionalProperties": false, + "properties": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::Cluster.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::Cluster.JobFlowInstancesConfig": { + "additionalProperties": false, + "properties": { + "AdditionalMasterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdditionalSlaveSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CoreInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "CoreInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Ec2KeyName": { + "type": "string" + }, + "Ec2SubnetId": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EmrManagedMasterSecurityGroup": { + "type": "string" + }, + "EmrManagedSlaveSecurityGroup": { + "type": "string" + }, + "HadoopVersion": { + "type": "string" + }, + "KeepJobFlowAliveWhenNoSteps": { + "type": "boolean" + }, + "MasterInstanceFleet": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "MasterInstanceGroup": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "Placement": { + "$ref": "#/definitions/AWS::EMR::Cluster.PlacementType" + }, + "ServiceAccessSecurityGroup": { + "type": "string" + }, + "TaskInstanceFleets": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceFleetConfig" + }, + "type": "array" + }, + "TaskInstanceGroups": { + "items": { + "$ref": "#/definitions/AWS::EMR::Cluster.InstanceGroupConfig" + }, + "type": "array" + }, + "TerminationProtected": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.KerberosAttributes": { + "additionalProperties": false, + "properties": { + "ADDomainJoinPassword": { + "type": "string" + }, + "ADDomainJoinUser": { + "type": "string" + }, + "CrossRealmTrustPrincipalPassword": { + "type": "string" + }, + "KdcAdminPassword": { + "type": "string" + }, + "Realm": { + "type": "string" + } + }, + "required": [ + "KdcAdminPassword", + "Realm" + ], + "type": "object" + }, + "AWS::EMR::Cluster.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.ManagedScalingPolicy": { + "additionalProperties": false, + "properties": { + "ComputeLimits": { + "$ref": "#/definitions/AWS::EMR::Cluster.ComputeLimits" + } + }, + "type": "object" + }, + "AWS::EMR::Cluster.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::Cluster.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "AWS::EMR::Cluster.PlacementType": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::Cluster.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::Cluster.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::Cluster.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::Cluster.ScriptBootstrapActionConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Path" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::Cluster.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::Cluster.StepConfig": { + "additionalProperties": false, + "properties": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Cluster.HadoopJarStepConfig" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "HadoopJarStep", + "Name" + ], + "type": "object" + }, + "AWS::EMR::Cluster.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig": { + "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": { + "ClusterId": { + "type": "string" + }, + "InstanceFleetType": { + "type": "string" + }, + "InstanceTypeConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceTypeConfig" + }, + "type": "array" + }, + "LaunchSpecifications": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications" + }, + "Name": { + "type": "string" + }, + "TargetOnDemandCapacity": { + "type": "number" + }, + "TargetSpotCapacity": { + "type": "number" + } + }, + "required": [ + "ClusterId", + "InstanceFleetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceFleetConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceFleetProvisioningSpecifications": { + "additionalProperties": false, + "properties": { + "OnDemandSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification" + }, + "SpotSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.InstanceTypeConfig": { + "additionalProperties": false, + "properties": { + "BidPrice": { + "type": "string" + }, + "BidPriceAsPercentageOfOnDemandPrice": { + "type": "number" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig.EbsConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "number" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.OnDemandProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + } + }, + "required": [ + "AllocationStrategy" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.SpotProvisioningSpecification": { + "additionalProperties": false, + "properties": { + "AllocationStrategy": { + "type": "string" + }, + "BlockDurationMinutes": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + }, + "TimeoutDurationMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutAction", + "TimeoutDurationMinutes" + ], + "type": "object" + }, + "AWS::EMR::InstanceFleetConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig": { + "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": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.AutoScalingPolicy" + }, + "BidPrice": { + "type": "string" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + }, + "CustomAmiId": { + "type": "string" + }, + "EbsConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsConfiguration" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceRole": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "JobFlowId": { + "type": "string" + }, + "Market": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceRole", + "InstanceType", + "JobFlowId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::InstanceGroupConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingConstraints" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingRule" + }, + "type": "array" + } + }, + "required": [ + "Constraints", + "Rules" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.MetricDimension" + }, + "type": "array" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "Statistic": { + "type": "string" + }, + "Threshold": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "MetricName", + "Period", + "Threshold" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.Configuration": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "ConfigurationProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Configurations": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.Configuration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig": { + "additionalProperties": false, + "properties": { + "VolumeSpecification": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.VolumeSpecification" + }, + "VolumesPerInstance": { + "type": "number" + } + }, + "required": [ + "VolumeSpecification" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.EbsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsBlockDeviceConfigs": { + "items": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.EbsBlockDeviceConfig" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.MetricDimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingAction": { + "additionalProperties": false, + "properties": { + "Market": { + "type": "string" + }, + "SimpleScalingPolicyConfiguration": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration" + } + }, + "required": [ + "SimpleScalingPolicyConfiguration" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingConstraints": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "required": [ + "MaxCapacity", + "MinCapacity" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Trigger": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.ScalingTrigger" + } + }, + "required": [ + "Action", + "Name", + "Trigger" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.ScalingTrigger": { + "additionalProperties": false, + "properties": { + "CloudWatchAlarmDefinition": { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig.CloudWatchAlarmDefinition" + } + }, + "required": [ + "CloudWatchAlarmDefinition" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.SimpleScalingPolicyConfiguration": { + "additionalProperties": false, + "properties": { + "AdjustmentType": { + "type": "string" + }, + "CoolDown": { + "type": "number" + }, + "ScalingAdjustment": { + "type": "number" + } + }, + "required": [ + "ScalingAdjustment" + ], + "type": "object" + }, + "AWS::EMR::InstanceGroupConfig.VolumeSpecification": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "SizeInGB": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "SizeInGB", + "VolumeType" + ], + "type": "object" + }, + "AWS::EMR::SecurityConfiguration": { + "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": { + "Name": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "object" + } + }, + "required": [ + "SecurityConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::SecurityConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step": { + "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": { + "ActionOnFailure": { + "type": "string" + }, + "HadoopJarStep": { + "$ref": "#/definitions/AWS::EMR::Step.HadoopJarStepConfig" + }, + "JobFlowId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ActionOnFailure", + "HadoopJarStep", + "JobFlowId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Step" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::Step.HadoopJarStepConfig": { + "additionalProperties": false, + "properties": { + "Args": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Jar": { + "type": "string" + }, + "MainClass": { + "type": "string" + }, + "StepProperties": { + "items": { + "$ref": "#/definitions/AWS::EMR::Step.KeyValue" + }, + "type": "array" + } + }, + "required": [ + "Jar" + ], + "type": "object" + }, + "AWS::EMR::Step.KeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::EMR::Studio": { + "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": { + "AuthMode": { + "type": "string" + }, + "DefaultS3Location": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineSecurityGroupId": { + "type": "string" + }, + "IdpAuthUrl": { + "type": "string" + }, + "IdpRelayStateParameterName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServiceRole": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserRole": { + "type": "string" + }, + "VpcId": { + "type": "string" + }, + "WorkspaceSecurityGroupId": { + "type": "string" + } + }, + "required": [ + "AuthMode", + "DefaultS3Location", + "EngineSecurityGroupId", + "Name", + "ServiceRole", + "SubnetIds", + "VpcId", + "WorkspaceSecurityGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::Studio" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMR::StudioSessionMapping": { + "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": { + "IdentityName": { + "type": "string" + }, + "IdentityType": { + "type": "string" + }, + "SessionPolicyArn": { + "type": "string" + }, + "StudioId": { + "type": "string" + } + }, + "required": [ + "IdentityName", + "IdentityType", + "SessionPolicyArn", + "StudioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMR::StudioSessionMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMRContainers::VirtualCluster": { + "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": { + "ContainerProvider": { + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerProvider" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerProvider", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMRContainers::VirtualCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMRContainers::VirtualCluster.ContainerInfo": { + "additionalProperties": false, + "properties": { + "EksInfo": { + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.EksInfo" + } + }, + "required": [ + "EksInfo" + ], + "type": "object" + }, + "AWS::EMRContainers::VirtualCluster.ContainerProvider": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Info": { + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster.ContainerInfo" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "Info", + "Type" + ], + "type": "object" + }, + "AWS::EMRContainers::VirtualCluster.EksInfo": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + } + }, + "required": [ + "Namespace" + ], + "type": "object" + }, + "AWS::EMRServerless::Application": { + "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": { + "Architecture": { + "type": "string" + }, + "AutoStartConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.AutoStartConfiguration" + }, + "AutoStopConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.AutoStopConfiguration" + }, + "InitialCapacity": { + "items": { + "$ref": "#/definitions/AWS::EMRServerless::Application.InitialCapacityConfigKeyValuePair" + }, + "type": "array" + }, + "MaximumCapacity": { + "$ref": "#/definitions/AWS::EMRServerless::Application.MaximumAllowedResources" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.NetworkConfiguration" + }, + "ReleaseLabel": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ReleaseLabel", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EMRServerless::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EMRServerless::Application.AutoStartConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::EMRServerless::Application.AutoStopConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdleTimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EMRServerless::Application.InitialCapacityConfig": { + "additionalProperties": false, + "properties": { + "WorkerConfiguration": { + "$ref": "#/definitions/AWS::EMRServerless::Application.WorkerConfiguration" + }, + "WorkerCount": { + "type": "number" + } + }, + "required": [ + "WorkerConfiguration", + "WorkerCount" + ], + "type": "object" + }, + "AWS::EMRServerless::Application.InitialCapacityConfigKeyValuePair": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::EMRServerless::Application.InitialCapacityConfig" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EMRServerless::Application.MaximumAllowedResources": { + "additionalProperties": false, + "properties": { + "Cpu": { + "type": "string" + }, + "Disk": { + "type": "string" + }, + "Memory": { + "type": "string" + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "AWS::EMRServerless::Application.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::EMRServerless::Application.WorkerConfiguration": { + "additionalProperties": false, + "properties": { + "Cpu": { + "type": "string" + }, + "Disk": { + "type": "string" + }, + "Memory": { + "type": "string" + } + }, + "required": [ + "Cpu", + "Memory" + ], + "type": "object" + }, + "AWS::ElastiCache::CacheCluster": { + "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": { + "AZMode": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "ClusterName": { + "type": "string" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "IpDiscovery": { + "type": "string" + }, + "LogDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest" + }, + "type": "array" + }, + "NetworkType": { + "type": "string" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheNodes": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredAvailabilityZone": { + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CacheNodeType", + "Engine", + "NumCacheNodes" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::CacheCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "required": [ + "LogGroup" + ], + "type": "object" + }, + "AWS::ElastiCache::CacheCluster.DestinationDetails": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsDetails": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.CloudWatchLogsDestinationDetails" + }, + "KinesisFirehoseDetails": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails" + } + }, + "type": "object" + }, + "AWS::ElastiCache::CacheCluster.KinesisFirehoseDestinationDetails": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "type": "string" + } + }, + "required": [ + "DeliveryStream" + ], + "type": "object" + }, + "AWS::ElastiCache::CacheCluster.LogDeliveryConfigurationRequest": { + "additionalProperties": false, + "properties": { + "DestinationDetails": { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster.DestinationDetails" + }, + "DestinationType": { + "type": "string" + }, + "LogFormat": { + "type": "string" + }, + "LogType": { + "type": "string" + } + }, + "required": [ + "DestinationDetails", + "DestinationType", + "LogFormat", + "LogType" + ], + "type": "object" + }, + "AWS::ElastiCache::GlobalReplicationGroup": { + "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": { + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalNodeGroupCount": { + "type": "number" + }, + "GlobalReplicationGroupDescription": { + "type": "string" + }, + "GlobalReplicationGroupIdSuffix": { + "type": "string" + }, + "Members": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember" + }, + "type": "array" + }, + "RegionalConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration" + }, + "type": "array" + } + }, + "required": [ + "Members" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::GlobalReplicationGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::GlobalReplicationGroup.GlobalReplicationGroupMember": { + "additionalProperties": false, + "properties": { + "ReplicationGroupId": { + "type": "string" + }, + "ReplicationGroupRegion": { + "type": "string" + }, + "Role": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::GlobalReplicationGroup.RegionalConfiguration": { + "additionalProperties": false, + "properties": { + "ReplicationGroupId": { + "type": "string" + }, + "ReplicationGroupRegion": { + "type": "string" + }, + "ReshardingConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElastiCache::GlobalReplicationGroup.ReshardingConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "type": "string" + }, + "PreferredAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElastiCache::ParameterGroup": { + "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": { + "CacheParameterGroupFamily": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Properties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CacheParameterGroupFamily", + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup": { + "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": { + "AtRestEncryptionEnabled": { + "type": "boolean" + }, + "AuthToken": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AutomaticFailoverEnabled": { + "type": "boolean" + }, + "CacheNodeType": { + "type": "string" + }, + "CacheParameterGroupName": { + "type": "string" + }, + "CacheSecurityGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CacheSubnetGroupName": { + "type": "string" + }, + "DataTieringEnabled": { + "type": "boolean" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalReplicationGroupId": { + "type": "string" + }, + "IpDiscovery": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LogDeliveryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest" + }, + "type": "array" + }, + "MultiAZEnabled": { + "type": "boolean" + }, + "NetworkType": { + "type": "string" + }, + "NodeGroupConfiguration": { + "items": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration" + }, + "type": "array" + }, + "NotificationTopicArn": { + "type": "string" + }, + "NumCacheClusters": { + "type": "number" + }, + "NumNodeGroups": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredCacheClusterAZs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PrimaryClusterId": { + "type": "string" + }, + "ReplicasPerNodeGroup": { + "type": "number" + }, + "ReplicationGroupDescription": { + "type": "string" + }, + "ReplicationGroupId": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnapshottingClusterId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransitEncryptionEnabled": { + "type": "boolean" + }, + "UserGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ReplicationGroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::ReplicationGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + } + }, + "required": [ + "LogGroup" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.DestinationDetails": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsDetails": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.CloudWatchLogsDestinationDetails" + }, + "KinesisFirehoseDetails": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails" + } + }, + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.KinesisFirehoseDestinationDetails": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "type": "string" + } + }, + "required": [ + "DeliveryStream" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.LogDeliveryConfigurationRequest": { + "additionalProperties": false, + "properties": { + "DestinationDetails": { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup.DestinationDetails" + }, + "DestinationType": { + "type": "string" + }, + "LogFormat": { + "type": "string" + }, + "LogType": { + "type": "string" + } + }, + "required": [ + "DestinationDetails", + "DestinationType", + "LogFormat", + "LogType" + ], + "type": "object" + }, + "AWS::ElastiCache::ReplicationGroup.NodeGroupConfiguration": { + "additionalProperties": false, + "properties": { + "NodeGroupId": { + "type": "string" + }, + "PrimaryAvailabilityZone": { + "type": "string" + }, + "ReplicaAvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ReplicaCount": { + "type": "number" + }, + "Slots": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElastiCache::SecurityGroup": { + "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": { + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SecurityGroupIngress": { + "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": { + "CacheSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "CacheSecurityGroupName", + "EC2SecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::SubnetGroup": { + "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": { + "CacheSubnetGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::SubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::User": { + "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": { + "AccessString": { + "type": "string" + }, + "AuthenticationMode": { + "$ref": "#/definitions/AWS::ElastiCache::User.AuthenticationMode" + }, + "Engine": { + "type": "string" + }, + "NoPasswordRequired": { + "type": "boolean" + }, + "Passwords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserId": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "Engine", + "UserId", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElastiCache::User.AuthenticationMode": { + "additionalProperties": false, + "properties": { + "Passwords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElastiCache::UserGroup": { + "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": { + "Engine": { + "type": "string" + }, + "UserGroupId": { + "type": "string" + }, + "UserIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Engine", + "UserGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElastiCache::UserGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ResourceLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationResourceLifecycleConfig": { + "additionalProperties": false, + "properties": { + "ServiceRole": { + "type": "string" + }, + "VersionLifecycleConfig": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.ApplicationVersionLifecycleConfig": { + "additionalProperties": false, + "properties": { + "MaxAgeRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxAgeRule" + }, + "MaxCountRule": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application.MaxCountRule" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxAgeRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxAgeInDays": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::Application.MaxCountRule": { + "additionalProperties": false, + "properties": { + "DeleteSourceFromS3": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "MaxCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SourceBundle": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle" + } + }, + "required": [ + "ApplicationName", + "SourceBundle" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ApplicationVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ApplicationVersion.SourceBundle": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::ConfigurationTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.ConfigurationOptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::ConfigurationTemplate.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationName": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "ApplicationName", + "TemplateName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment": { + "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": { + "ApplicationName": { + "type": "string" + }, + "CNAMEPrefix": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EnvironmentName": { + "type": "string" + }, + "OperationsRole": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.OptionSetting" + }, + "type": "array" + }, + "PlatformArn": { + "type": "string" + }, + "SolutionStackName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateName": { + "type": "string" + }, + "Tier": { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment.Tier" + }, + "VersionLabel": { + "type": "string" + } + }, + "required": [ + "ApplicationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticBeanstalk::Environment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment.OptionSetting": { + "additionalProperties": false, + "properties": { + "Namespace": { + "type": "string" + }, + "OptionName": { + "type": "string" + }, + "ResourceName": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Namespace", + "OptionName" + ], + "type": "object" + }, + "AWS::ElasticBeanstalk::Environment.Tier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer": { + "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": { + "AccessLoggingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy" + }, + "AppCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectionDrainingPolicy": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy" + }, + "ConnectionSettings": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings" + }, + "CrossZone": { + "type": "boolean" + }, + "HealthCheck": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck" + }, + "Instances": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LBCookieStickinessPolicy": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy" + }, + "type": "array" + }, + "Listeners": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Listeners" + }, + "type": "array" + }, + "LoadBalancerName": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer.Policies" + }, + "type": "array" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Listeners" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancing::LoadBalancer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.AccessLoggingPolicy": { + "additionalProperties": false, + "properties": { + "EmitInterval": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "S3BucketName": { + "type": "string" + }, + "S3BucketPrefix": { + "type": "string" + } + }, + "required": [ + "Enabled", + "S3BucketName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.AppCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieName": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "CookieName", + "PolicyName" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionDrainingPolicy": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Timeout": { + "type": "number" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.ConnectionSettings": { + "additionalProperties": false, + "properties": { + "IdleTimeout": { + "type": "number" + } + }, + "required": [ + "IdleTimeout" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.HealthCheck": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "type": "string" + }, + "Interval": { + "type": "string" + }, + "Target": { + "type": "string" + }, + "Timeout": { + "type": "string" + }, + "UnhealthyThreshold": { + "type": "string" + } + }, + "required": [ + "HealthyThreshold", + "Interval", + "Target", + "Timeout", + "UnhealthyThreshold" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.LBCookieStickinessPolicy": { + "additionalProperties": false, + "properties": { + "CookieExpirationPeriod": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.Listeners": { + "additionalProperties": false, + "properties": { + "InstancePort": { + "type": "string" + }, + "InstanceProtocol": { + "type": "string" + }, + "LoadBalancerPort": { + "type": "string" + }, + "PolicyNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "SSLCertificateId": { + "type": "string" + } + }, + "required": [ + "InstancePort", + "LoadBalancerPort", + "Protocol" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancing::LoadBalancer.Policies": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "object" + }, + "type": "array" + }, + "InstancePorts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LoadBalancerPorts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PolicyName": { + "type": "string" + }, + "PolicyType": { + "type": "string" + } + }, + "required": [ + "Attributes", + "PolicyName", + "PolicyType" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener": { + "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": { + "AlpnPolicy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Certificate" + }, + "type": "array" + }, + "DefaultActions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.Action" + }, + "type": "array" + }, + "LoadBalancerArn": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "SslPolicy": { + "type": "string" + } + }, + "required": [ + "DefaultActions", + "LoadBalancerArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::Listener" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.Action": { + "additionalProperties": false, + "properties": { + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig" + }, + "ForwardConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.ForwardConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.RedirectConfig" + }, + "TargetGroupArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "string" + }, + "UserPoolArn": { + "type": "string" + }, + "UserPoolClientId": { + "type": "string" + }, + "UserPoolDomain": { + "type": "string" + } + }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.AuthenticateOidcConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "string" + }, + "TokenEndpoint": { + "type": "string" + }, + "UseExistingClientSecret": { + "type": "boolean" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "required": [ + "AuthorizationEndpoint", + "ClientId", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.Certificate": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.FixedResponseConfig": { + "additionalProperties": false, + "properties": { + "ContentType": { + "type": "string" + }, + "MessageBody": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.ForwardConfig": { + "additionalProperties": false, + "properties": { + "TargetGroupStickinessConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.RedirectConfig": { + "additionalProperties": false, + "properties": { + "Host": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Query": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.TargetGroupStickinessConfig": { + "additionalProperties": false, + "properties": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::Listener.TargetGroupTuple": { + "additionalProperties": false, + "properties": { + "TargetGroupArn": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerCertificate": { + "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": { + "Certificates": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + } + }, + "required": [ + "Certificates", + "ListenerArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerCertificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerCertificate.Certificate": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule": { + "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": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.Action" + }, + "type": "array" + }, + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition" + }, + "type": "array" + }, + "ListenerArn": { + "type": "string" + }, + "Priority": { + "type": "number" + } + }, + "required": [ + "Actions", + "Conditions", + "ListenerArn", + "Priority" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::ListenerRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.Action": { + "additionalProperties": false, + "properties": { + "AuthenticateCognitoConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig" + }, + "AuthenticateOidcConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig" + }, + "FixedResponseConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig" + }, + "ForwardConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig" + }, + "Order": { + "type": "number" + }, + "RedirectConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig" + }, + "TargetGroupArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateCognitoConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "UserPoolArn": { + "type": "string" + }, + "UserPoolClientId": { + "type": "string" + }, + "UserPoolDomain": { + "type": "string" + } + }, + "required": [ + "UserPoolArn", + "UserPoolClientId", + "UserPoolDomain" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.AuthenticateOidcConfig": { + "additionalProperties": false, + "properties": { + "AuthenticationRequestExtraParams": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "OnUnauthenticatedRequest": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "SessionCookieName": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "TokenEndpoint": { + "type": "string" + }, + "UseExistingClientSecret": { + "type": "boolean" + }, + "UserInfoEndpoint": { + "type": "string" + } + }, + "required": [ + "AuthorizationEndpoint", + "ClientId", + "Issuer", + "TokenEndpoint", + "UserInfoEndpoint" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.FixedResponseConfig": { + "additionalProperties": false, + "properties": { + "ContentType": { + "type": "string" + }, + "MessageBody": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.ForwardConfig": { + "additionalProperties": false, + "properties": { + "TargetGroupStickinessConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig" + }, + "TargetGroups": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig": { + "additionalProperties": false, + "properties": { + "HttpHeaderName": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.RedirectConfig": { + "additionalProperties": false, + "properties": { + "Host": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Query": { + "type": "string" + }, + "StatusCode": { + "type": "string" + } + }, + "required": [ + "StatusCode" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.RuleCondition": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "HostHeaderConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HostHeaderConfig" + }, + "HttpHeaderConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpHeaderConfig" + }, + "HttpRequestMethodConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.HttpRequestMethodConfig" + }, + "PathPatternConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.PathPatternConfig" + }, + "QueryStringConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.QueryStringConfig" + }, + "SourceIpConfig": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.SourceIpConfig": { + "additionalProperties": false, + "properties": { + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupStickinessConfig": { + "additionalProperties": false, + "properties": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::ListenerRule.TargetGroupTuple": { + "additionalProperties": false, + "properties": { + "TargetGroupArn": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer": { + "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": { + "IpAddressType": { + "type": "string" + }, + "LoadBalancerAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Scheme": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::LoadBalancer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer.LoadBalancerAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::LoadBalancer.SubnetMapping": { + "additionalProperties": false, + "properties": { + "AllocationId": { + "type": "string" + }, + "IPv6Address": { + "type": "string" + }, + "PrivateIPv4Address": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup": { + "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": { + "HealthCheckEnabled": { + "type": "boolean" + }, + "HealthCheckIntervalSeconds": { + "type": "number" + }, + "HealthCheckPath": { + "type": "string" + }, + "HealthCheckPort": { + "type": "string" + }, + "HealthCheckProtocol": { + "type": "string" + }, + "HealthCheckTimeoutSeconds": { + "type": "number" + }, + "HealthyThresholdCount": { + "type": "number" + }, + "IpAddressType": { + "type": "string" + }, + "Matcher": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.Matcher" + }, + "Name": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "ProtocolVersion": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetGroupAttributes": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute" + }, + "type": "array" + }, + "TargetType": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription" + }, + "type": "array" + }, + "UnhealthyThresholdCount": { + "type": "number" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ElasticLoadBalancingV2::TargetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup.Matcher": { + "additionalProperties": false, + "properties": { + "GrpcCode": { + "type": "string" + }, + "HttpCode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetDescription": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::ElasticLoadBalancingV2::TargetGroup.TargetGroupAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain": { + "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": { + "AccessPolicies": { + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput" + }, + "CognitoOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.CognitoOptions" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.DomainEndpointOptions" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EBSOptions" + }, + "ElasticsearchClusterConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ElasticsearchClusterConfig" + }, + "ElasticsearchVersion": { + "type": "string" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.EncryptionAtRestOptions" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.VPCOptions" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Elasticsearch::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Elasticsearch::Domain.AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "AnonymousAuthEnabled": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.MasterUserOptions" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ColdStorageOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ElasticsearchClusterConfig": { + "additionalProperties": false, + "properties": { + "ColdStorageOptions": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ColdStorageOptions" + }, + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::Elasticsearch::Domain.ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Elasticsearch::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::EventSchemas::Discoverer": { + "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": { + "CrossAccount": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EventSchemas::Discoverer.TagsEntry" + }, + "type": "array" + } + }, + "required": [ + "SourceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EventSchemas::Discoverer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EventSchemas::Discoverer.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EventSchemas::Registry": { + "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": { + "Description": { + "type": "string" + }, + "RegistryName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EventSchemas::Registry.TagsEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EventSchemas::Registry" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::EventSchemas::Registry.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::EventSchemas::RegistryPolicy": { + "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": { + "Policy": { + "type": "object" + }, + "RegistryName": { + "type": "string" + }, + "RevisionId": { + "type": "string" + } + }, + "required": [ + "Policy", + "RegistryName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EventSchemas::RegistryPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EventSchemas::Schema": { + "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": { + "Content": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "RegistryName": { + "type": "string" + }, + "SchemaName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::EventSchemas::Schema.TagsEntry" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Content", + "RegistryName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::EventSchemas::Schema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::EventSchemas::Schema.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Events::ApiDestination": { + "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": { + "ConnectionArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "HttpMethod": { + "type": "string" + }, + "InvocationEndpoint": { + "type": "string" + }, + "InvocationRateLimitPerSecond": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ConnectionArn", + "HttpMethod", + "InvocationEndpoint" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::ApiDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::Archive": { + "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": { + "ArchiveName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EventPattern": { + "type": "object" + }, + "RetentionDays": { + "type": "number" + }, + "SourceArn": { + "type": "string" + } + }, + "required": [ + "SourceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::Archive" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::Connection": { + "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": { + "AuthParameters": { + "$ref": "#/definitions/AWS::Events::Connection.AuthParameters" + }, + "AuthorizationType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "AuthParameters", + "AuthorizationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::Connection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::Connection.ApiKeyAuthParameters": { + "additionalProperties": false, + "properties": { + "ApiKeyName": { + "type": "string" + }, + "ApiKeyValue": { + "type": "string" + } + }, + "required": [ + "ApiKeyName", + "ApiKeyValue" + ], + "type": "object" + }, + "AWS::Events::Connection.AuthParameters": { + "additionalProperties": false, + "properties": { + "ApiKeyAuthParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ApiKeyAuthParameters" + }, + "BasicAuthParameters": { + "$ref": "#/definitions/AWS::Events::Connection.BasicAuthParameters" + }, + "InvocationHttpParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters" + }, + "OAuthParameters": { + "$ref": "#/definitions/AWS::Events::Connection.OAuthParameters" + } + }, + "type": "object" + }, + "AWS::Events::Connection.BasicAuthParameters": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::Events::Connection.ClientParameters": { + "additionalProperties": false, + "properties": { + "ClientID": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + } + }, + "required": [ + "ClientID", + "ClientSecret" + ], + "type": "object" + }, + "AWS::Events::Connection.ConnectionHttpParameters": { + "additionalProperties": false, + "properties": { + "BodyParameters": { + "items": { + "$ref": "#/definitions/AWS::Events::Connection.Parameter" + }, + "type": "array" + }, + "HeaderParameters": { + "items": { + "$ref": "#/definitions/AWS::Events::Connection.Parameter" + }, + "type": "array" + }, + "QueryStringParameters": { + "items": { + "$ref": "#/definitions/AWS::Events::Connection.Parameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Events::Connection.OAuthParameters": { + "additionalProperties": false, + "properties": { + "AuthorizationEndpoint": { + "type": "string" + }, + "ClientParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ClientParameters" + }, + "HttpMethod": { + "type": "string" + }, + "OAuthHttpParameters": { + "$ref": "#/definitions/AWS::Events::Connection.ConnectionHttpParameters" + } + }, + "required": [ + "AuthorizationEndpoint", + "ClientParameters", + "HttpMethod" + ], + "type": "object" + }, + "AWS::Events::Connection.Parameter": { + "additionalProperties": false, + "properties": { + "IsValueSecret": { + "type": "boolean" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Events::Endpoint": { + "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": { + "Description": { + "type": "string" + }, + "EventBuses": { + "items": { + "$ref": "#/definitions/AWS::Events::Endpoint.EndpointEventBus" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ReplicationConfig": { + "$ref": "#/definitions/AWS::Events::Endpoint.ReplicationConfig" + }, + "RoleArn": { + "type": "string" + }, + "RoutingConfig": { + "$ref": "#/definitions/AWS::Events::Endpoint.RoutingConfig" + } + }, + "required": [ + "EventBuses", + "Name", + "RoutingConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::Endpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::Endpoint.EndpointEventBus": { + "additionalProperties": false, + "properties": { + "EventBusArn": { + "type": "string" + } + }, + "required": [ + "EventBusArn" + ], + "type": "object" + }, + "AWS::Events::Endpoint.FailoverConfig": { + "additionalProperties": false, + "properties": { + "Primary": { + "$ref": "#/definitions/AWS::Events::Endpoint.Primary" + }, + "Secondary": { + "$ref": "#/definitions/AWS::Events::Endpoint.Secondary" + } + }, + "required": [ + "Primary", + "Secondary" + ], + "type": "object" + }, + "AWS::Events::Endpoint.Primary": { + "additionalProperties": false, + "properties": { + "HealthCheck": { + "type": "string" + } + }, + "required": [ + "HealthCheck" + ], + "type": "object" + }, + "AWS::Events::Endpoint.ReplicationConfig": { + "additionalProperties": false, + "properties": { + "State": { + "type": "string" + } + }, + "required": [ + "State" + ], + "type": "object" + }, + "AWS::Events::Endpoint.RoutingConfig": { + "additionalProperties": false, + "properties": { + "FailoverConfig": { + "$ref": "#/definitions/AWS::Events::Endpoint.FailoverConfig" + } + }, + "required": [ + "FailoverConfig" + ], + "type": "object" + }, + "AWS::Events::Endpoint.Secondary": { + "additionalProperties": false, + "properties": { + "Route": { + "type": "string" + } + }, + "required": [ + "Route" + ], + "type": "object" + }, + "AWS::Events::EventBus": { + "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": { + "EventSourceName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::Events::EventBus.TagEntry" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::EventBus" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::EventBus.TagEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Events::EventBusPolicy": { + "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": { + "Action": { + "type": "string" + }, + "Condition": { + "$ref": "#/definitions/AWS::Events::EventBusPolicy.Condition" + }, + "EventBusName": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "Statement": { + "type": "object" + }, + "StatementId": { + "type": "string" + } + }, + "required": [ + "StatementId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::EventBusPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Events::EventBusPolicy.Condition": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule": { + "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": { + "Description": { + "type": "string" + }, + "EventBusName": { + "type": "string" + }, + "EventPattern": { + "type": "object" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.Target" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Events::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Events::Rule.AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "AWS::Events::Rule.BatchArrayProperties": { + "additionalProperties": false, + "properties": { + "Size": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Events::Rule.BatchParameters": { + "additionalProperties": false, + "properties": { + "ArrayProperties": { + "$ref": "#/definitions/AWS::Events::Rule.BatchArrayProperties" + }, + "JobDefinition": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "RetryStrategy": { + "$ref": "#/definitions/AWS::Events::Rule.BatchRetryStrategy" + } + }, + "required": [ + "JobDefinition", + "JobName" + ], + "type": "object" + }, + "AWS::Events::Rule.BatchRetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Events::Rule.CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "number" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "AWS::Events::Rule.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.EcsParameters": { + "additionalProperties": false, + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.CapacityProviderStrategyItem" + }, + "type": "array" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "Group": { + "type": "string" + }, + "LaunchType": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::Events::Rule.NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategies": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "type": "string" + }, + "PropagateTags": { + "type": "string" + }, + "ReferenceId": { + "type": "string" + }, + "TagList": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskCount": { + "type": "number" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Events::Rule.HttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "PathParameterValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "QueryStringParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Events::Rule.InputTransformer": { + "additionalProperties": false, + "properties": { + "InputPathsMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "InputTemplate": { + "type": "string" + } + }, + "required": [ + "InputTemplate" + ], + "type": "object" + }, + "AWS::Events::Rule.KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKeyPath": { + "type": "string" + } + }, + "required": [ + "PartitionKeyPath" + ], + "type": "object" + }, + "AWS::Events::Rule.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsVpcConfiguration": { + "$ref": "#/definitions/AWS::Events::Rule.AwsVpcConfiguration" + } + }, + "type": "object" + }, + "AWS::Events::Rule.PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.RedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sql": { + "type": "string" + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database", + "Sql" + ], + "type": "object" + }, + "AWS::Events::Rule.RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Events::Rule.RunCommandParameters": { + "additionalProperties": false, + "properties": { + "RunCommandTargets": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandTarget" + }, + "type": "array" + } + }, + "required": [ + "RunCommandTargets" + ], + "type": "object" + }, + "AWS::Events::Rule.RunCommandTarget": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::Events::Rule.SageMakerPipelineParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::Events::Rule.SageMakerPipelineParameters": { + "additionalProperties": false, + "properties": { + "PipelineParameterList": { + "items": { + "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Events::Rule.SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "required": [ + "MessageGroupId" + ], + "type": "object" + }, + "AWS::Events::Rule.Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Events::Rule.Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "BatchParameters": { + "$ref": "#/definitions/AWS::Events::Rule.BatchParameters" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Events::Rule.DeadLetterConfig" + }, + "EcsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.EcsParameters" + }, + "HttpParameters": { + "$ref": "#/definitions/AWS::Events::Rule.HttpParameters" + }, + "Id": { + "type": "string" + }, + "Input": { + "type": "string" + }, + "InputPath": { + "type": "string" + }, + "InputTransformer": { + "$ref": "#/definitions/AWS::Events::Rule.InputTransformer" + }, + "KinesisParameters": { + "$ref": "#/definitions/AWS::Events::Rule.KinesisParameters" + }, + "RedshiftDataParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RedshiftDataParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::Events::Rule.RetryPolicy" + }, + "RoleArn": { + "type": "string" + }, + "RunCommandParameters": { + "$ref": "#/definitions/AWS::Events::Rule.RunCommandParameters" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SageMakerPipelineParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/AWS::Events::Rule.SqsParameters" + } + }, + "required": [ + "Arn", + "Id" + ], + "type": "object" + }, + "AWS::Evidently::Experiment": { + "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": { + "Description": { + "type": "string" + }, + "MetricGoals": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Experiment.MetricGoalObject" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "OnlineAbConfig": { + "$ref": "#/definitions/AWS::Evidently::Experiment.OnlineAbConfigObject" + }, + "Project": { + "type": "string" + }, + "RandomizationSalt": { + "type": "string" + }, + "RemoveSegment": { + "type": "boolean" + }, + "RunningStatus": { + "$ref": "#/definitions/AWS::Evidently::Experiment.RunningStatusObject" + }, + "SamplingRate": { + "type": "number" + }, + "Segment": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Treatments": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentObject" + }, + "type": "array" + } + }, + "required": [ + "MetricGoals", + "Name", + "OnlineAbConfig", + "Project", + "Treatments" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Evidently::Experiment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Evidently::Experiment.MetricGoalObject": { + "additionalProperties": false, + "properties": { + "DesiredChange": { + "type": "string" + }, + "EntityIdKey": { + "type": "string" + }, + "EventPattern": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "UnitLabel": { + "type": "string" + }, + "ValueKey": { + "type": "string" + } + }, + "required": [ + "DesiredChange", + "EntityIdKey", + "MetricName", + "ValueKey" + ], + "type": "object" + }, + "AWS::Evidently::Experiment.OnlineAbConfigObject": { + "additionalProperties": false, + "properties": { + "ControlTreatmentName": { + "type": "string" + }, + "TreatmentWeights": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Experiment.TreatmentToWeight" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Evidently::Experiment.RunningStatusObject": { + "additionalProperties": false, + "properties": { + "AnalysisCompleteTime": { + "type": "string" + }, + "DesiredState": { + "type": "string" + }, + "Reason": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::Evidently::Experiment.TreatmentObject": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Feature": { + "type": "string" + }, + "TreatmentName": { + "type": "string" + }, + "Variation": { + "type": "string" + } + }, + "required": [ + "Feature", + "TreatmentName", + "Variation" + ], + "type": "object" + }, + "AWS::Evidently::Experiment.TreatmentToWeight": { + "additionalProperties": false, + "properties": { + "SplitWeight": { + "type": "number" + }, + "Treatment": { + "type": "string" + } + }, + "required": [ + "SplitWeight", + "Treatment" + ], + "type": "object" + }, + "AWS::Evidently::Feature": { + "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": { + "DefaultVariation": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EntityOverrides": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Feature.EntityOverride" + }, + "type": "array" + }, + "EvaluationStrategy": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Project": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Variations": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Feature.VariationObject" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Project", + "Variations" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Evidently::Feature" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Evidently::Feature.EntityOverride": { + "additionalProperties": false, + "properties": { + "EntityId": { + "type": "string" + }, + "Variation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Evidently::Feature.VariationObject": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "boolean" + }, + "DoubleValue": { + "type": "number" + }, + "LongValue": { + "type": "number" + }, + "StringValue": { + "type": "string" + }, + "VariationName": { + "type": "string" + } + }, + "required": [ + "VariationName" + ], + "type": "object" + }, + "AWS::Evidently::Launch": { + "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": { + "Description": { + "type": "string" + }, + "ExecutionStatus": { + "$ref": "#/definitions/AWS::Evidently::Launch.ExecutionStatusObject" + }, + "Groups": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.LaunchGroupObject" + }, + "type": "array" + }, + "MetricMonitors": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.MetricDefinitionObject" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Project": { + "type": "string" + }, + "RandomizationSalt": { + "type": "string" + }, + "ScheduledSplitsConfig": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.StepConfig" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Groups", + "Name", + "Project", + "ScheduledSplitsConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Evidently::Launch" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Evidently::Launch.ExecutionStatusObject": { + "additionalProperties": false, + "properties": { + "DesiredState": { + "type": "string" + }, + "Reason": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::Evidently::Launch.GroupToWeight": { + "additionalProperties": false, + "properties": { + "GroupName": { + "type": "string" + }, + "SplitWeight": { + "type": "number" + } + }, + "required": [ + "GroupName", + "SplitWeight" + ], + "type": "object" + }, + "AWS::Evidently::Launch.LaunchGroupObject": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Feature": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "Variation": { + "type": "string" + } + }, + "required": [ + "Feature", + "GroupName", + "Variation" + ], + "type": "object" + }, + "AWS::Evidently::Launch.MetricDefinitionObject": { + "additionalProperties": false, + "properties": { + "EntityIdKey": { + "type": "string" + }, + "EventPattern": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "UnitLabel": { + "type": "string" + }, + "ValueKey": { + "type": "string" + } + }, + "required": [ + "EntityIdKey", + "MetricName", + "ValueKey" + ], + "type": "object" + }, + "AWS::Evidently::Launch.SegmentOverride": { + "additionalProperties": false, + "properties": { + "EvaluationOrder": { + "type": "number" + }, + "Segment": { + "type": "string" + }, + "Weights": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.GroupToWeight" + }, + "type": "array" + } + }, + "required": [ + "EvaluationOrder", + "Segment", + "Weights" + ], + "type": "object" + }, + "AWS::Evidently::Launch.StepConfig": { + "additionalProperties": false, + "properties": { + "GroupWeights": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.GroupToWeight" + }, + "type": "array" + }, + "SegmentOverrides": { + "items": { + "$ref": "#/definitions/AWS::Evidently::Launch.SegmentOverride" + }, + "type": "array" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "GroupWeights", + "StartTime" + ], + "type": "object" + }, + "AWS::Evidently::Project": { + "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": { + "AppConfigResource": { + "$ref": "#/definitions/AWS::Evidently::Project.AppConfigResourceObject" + }, + "DataDelivery": { + "$ref": "#/definitions/AWS::Evidently::Project.DataDeliveryObject" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Evidently::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Evidently::Project.AppConfigResourceObject": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "type": "string" + }, + "EnvironmentId": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "EnvironmentId" + ], + "type": "object" + }, + "AWS::Evidently::Project.DataDeliveryObject": { + "additionalProperties": false, + "properties": { + "LogGroup": { + "type": "string" + }, + "S3": { + "$ref": "#/definitions/AWS::Evidently::Project.S3Destination" + } + }, + "type": "object" + }, + "AWS::Evidently::Project.S3Destination": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::Evidently::Segment": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Pattern": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Evidently::Segment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate": { + "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": { + "Actions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateAction" + } + }, + "type": "object" + }, + "Description": { + "type": "string" + }, + "LogConfiguration": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration" + }, + "RoleArn": { + "type": "string" + }, + "StopConditions": { + "items": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Targets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget" + } + }, + "type": "object" + } + }, + "required": [ + "Description", + "RoleArn", + "StopConditions", + "Tags", + "Targets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FIS::ExperimentTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.CloudWatchLogsConfiguration": { + "additionalProperties": false, + "properties": { + "LogGroupArn": { + "type": "string" + } + }, + "required": [ + "LogGroupArn" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateAction": { + "additionalProperties": false, + "properties": { + "ActionId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Parameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "StartAfter": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Targets": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "ActionId" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateLogConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsConfiguration": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.CloudWatchLogsConfiguration" + }, + "LogSchemaVersion": { + "type": "number" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.S3Configuration" + } + }, + "required": [ + "LogSchemaVersion" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateStopCondition": { + "additionalProperties": false, + "properties": { + "Source": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Source" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateTarget": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter" + }, + "type": "array" + }, + "Parameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ResourceType": { + "type": "string" + }, + "SelectionMode": { + "type": "string" + } + }, + "required": [ + "ResourceType", + "SelectionMode" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.ExperimentTemplateTargetFilter": { + "additionalProperties": false, + "properties": { + "Path": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Path", + "Values" + ], + "type": "object" + }, + "AWS::FIS::ExperimentTemplate.S3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::FMS::NotificationChannel": { + "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": { + "SnsRoleName": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + } + }, + "required": [ + "SnsRoleName", + "SnsTopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FMS::NotificationChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FMS::Policy": { + "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": { + "DeleteAllPolicyResources": { + "type": "boolean" + }, + "ExcludeMap": { + "$ref": "#/definitions/AWS::FMS::Policy.IEMap" + }, + "ExcludeResourceTags": { + "type": "boolean" + }, + "IncludeMap": { + "$ref": "#/definitions/AWS::FMS::Policy.IEMap" + }, + "PolicyName": { + "type": "string" + }, + "RemediationEnabled": { + "type": "boolean" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/AWS::FMS::Policy.ResourceTag" + }, + "type": "array" + }, + "ResourceType": { + "type": "string" + }, + "ResourceTypeList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourcesCleanUp": { + "type": "boolean" + }, + "SecurityServicePolicyData": { + "$ref": "#/definitions/AWS::FMS::Policy.SecurityServicePolicyData" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyTag" + }, + "type": "array" + } + }, + "required": [ + "ExcludeResourceTags", + "PolicyName", + "RemediationEnabled", + "ResourceType", + "SecurityServicePolicyData" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FMS::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FMS::Policy.IEMap": { + "additionalProperties": false, + "properties": { + "ACCOUNT": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ORGUNIT": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FMS::Policy.NetworkFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FMS::Policy.PolicyOption": { + "additionalProperties": false, + "properties": { + "NetworkFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.NetworkFirewallPolicy" + }, + "ThirdPartyFirewallPolicy": { + "$ref": "#/definitions/AWS::FMS::Policy.ThirdPartyFirewallPolicy" + } + }, + "type": "object" + }, + "AWS::FMS::Policy.PolicyTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::FMS::Policy.ResourceTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key" + ], + "type": "object" + }, + "AWS::FMS::Policy.SecurityServicePolicyData": { + "additionalProperties": false, + "properties": { + "ManagedServiceData": { + "type": "string" + }, + "PolicyOption": { + "$ref": "#/definitions/AWS::FMS::Policy.PolicyOption" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::FMS::Policy.ThirdPartyFirewallPolicy": { + "additionalProperties": false, + "properties": { + "FirewallDeploymentModel": { + "type": "string" + } + }, + "required": [ + "FirewallDeploymentModel" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation": { + "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": { + "BatchImportMetaDataOnCreate": { + "type": "boolean" + }, + "DataRepositoryPath": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "FileSystemPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "S3": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.S3" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataRepositoryPath", + "FileSystemId", + "FileSystemPath" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::DataRepositoryAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoExportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.AutoImportPolicy": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Events" + ], + "type": "object" + }, + "AWS::FSx::DataRepositoryAssociation.S3": { + "additionalProperties": false, + "properties": { + "AutoExportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoExportPolicy" + }, + "AutoImportPolicy": { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation.AutoImportPolicy" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem": { + "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": { + "BackupId": { + "type": "string" + }, + "FileSystemType": { + "type": "string" + }, + "FileSystemTypeVersion": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LustreConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.LustreConfiguration" + }, + "OntapConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OntapConfiguration" + }, + "OpenZFSConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.OpenZFSConfiguration" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StorageCapacity": { + "type": "number" + }, + "StorageType": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WindowsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.WindowsConfiguration" + } + }, + "required": [ + "FileSystemType", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::FileSystem" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.AuditLogConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogDestination": { + "type": "string" + }, + "FileAccessAuditLogLevel": { + "type": "string" + }, + "FileShareAccessAuditLogLevel": { + "type": "string" + } + }, + "required": [ + "FileAccessAuditLogLevel", + "FileShareAccessAuditLogLevel" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.ClientConfigurations": { + "additionalProperties": false, + "properties": { + "Clients": { + "type": "string" + }, + "Options": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.DiskIopsConfiguration": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.LustreConfiguration": { + "additionalProperties": false, + "properties": { + "AutoImportPolicy": { + "type": "string" + }, + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "CopyTagsToBackups": { + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DataCompressionType": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "DriveCacheType": { + "type": "string" + }, + "ExportPath": { + "type": "string" + }, + "ImportPath": { + "type": "string" + }, + "ImportedFileChunkSize": { + "type": "number" + }, + "PerUnitStorageThroughput": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.NfsExports": { + "additionalProperties": false, + "properties": { + "ClientConfigurations": { + "items": { + "$ref": "#/definitions/AWS::FSx::FileSystem.ClientConfigurations" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.OntapConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, + "EndpointIpAddressRange": { + "type": "string" + }, + "FsxAdminPassword": { + "type": "string" + }, + "PreferredSubnetId": { + "type": "string" + }, + "RouteTableIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.OpenZFSConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "CopyTagsToBackups": { + "type": "boolean" + }, + "CopyTagsToVolumes": { + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "DiskIopsConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.DiskIopsConfiguration" + }, + "Options": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RootVolumeConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.RootVolumeConfiguration" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "required": [ + "DeploymentType" + ], + "type": "object" + }, + "AWS::FSx::FileSystem.RootVolumeConfiguration": { + "additionalProperties": false, + "properties": { + "CopyTagsToSnapshots": { + "type": "boolean" + }, + "DataCompressionType": { + "type": "string" + }, + "NfsExports": { + "items": { + "$ref": "#/definitions/AWS::FSx::FileSystem.NfsExports" + }, + "type": "array" + }, + "ReadOnly": { + "type": "boolean" + }, + "RecordSizeKiB": { + "type": "number" + }, + "UserAndGroupQuotas": { + "items": { + "$ref": "#/definitions/AWS::FSx::FileSystem.UserAndGroupQuotas" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "DnsIps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainName": { + "type": "string" + }, + "FileSystemAdministratorsGroup": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.UserAndGroupQuotas": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "number" + }, + "StorageCapacityQuotaGiB": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::FileSystem.WindowsConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryId": { + "type": "string" + }, + "Aliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuditLogConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.AuditLogConfiguration" + }, + "AutomaticBackupRetentionDays": { + "type": "number" + }, + "CopyTagsToBackups": { + "type": "boolean" + }, + "DailyAutomaticBackupStartTime": { + "type": "string" + }, + "DeploymentType": { + "type": "string" + }, + "PreferredSubnetId": { + "type": "string" + }, + "SelfManagedActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::FSx::FileSystem.SelfManagedActiveDirectoryConfiguration" + }, + "ThroughputCapacity": { + "type": "number" + }, + "WeeklyMaintenanceStartTime": { + "type": "string" + } + }, + "required": [ + "ThroughputCapacity" + ], + "type": "object" + }, + "AWS::FSx::Snapshot": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VolumeId": { + "type": "string" + } + }, + "required": [ + "Name", + "VolumeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::Snapshot" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::StorageVirtualMachine": { + "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": { + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::FSx::StorageVirtualMachine.ActiveDirectoryConfiguration" + }, + "FileSystemId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RootVolumeSecurityStyle": { + "type": "string" + }, + "SvmAdminPassword": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FileSystemId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::StorageVirtualMachine" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::StorageVirtualMachine.ActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "NetBiosName": { + "type": "string" + }, + "SelfManagedActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::FSx::StorageVirtualMachine.SelfManagedActiveDirectoryConfiguration" + } + }, + "type": "object" + }, + "AWS::FSx::StorageVirtualMachine.SelfManagedActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "DnsIps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DomainName": { + "type": "string" + }, + "FileSystemAdministratorsGroup": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::Volume": { + "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": { + "BackupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OntapConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.OntapConfiguration" + }, + "OpenZFSConfiguration": { + "$ref": "#/definitions/AWS::FSx::Volume.OpenZFSConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VolumeType": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FSx::Volume" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FSx::Volume.ClientConfigurations": { + "additionalProperties": false, + "properties": { + "Clients": { + "type": "string" + }, + "Options": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Clients", + "Options" + ], + "type": "object" + }, + "AWS::FSx::Volume.NfsExports": { + "additionalProperties": false, + "properties": { + "ClientConfigurations": { + "items": { + "$ref": "#/definitions/AWS::FSx::Volume.ClientConfigurations" + }, + "type": "array" + } + }, + "required": [ + "ClientConfigurations" + ], + "type": "object" + }, + "AWS::FSx::Volume.OntapConfiguration": { + "additionalProperties": false, + "properties": { + "CopyTagsToBackups": { + "type": "string" + }, + "JunctionPath": { + "type": "string" + }, + "OntapVolumeType": { + "type": "string" + }, + "SecurityStyle": { + "type": "string" + }, + "SizeInMegabytes": { + "type": "string" + }, + "SnapshotPolicy": { + "type": "string" + }, + "StorageEfficiencyEnabled": { + "type": "string" + }, + "StorageVirtualMachineId": { + "type": "string" + }, + "TieringPolicy": { + "$ref": "#/definitions/AWS::FSx::Volume.TieringPolicy" + } + }, + "required": [ + "SizeInMegabytes", + "StorageVirtualMachineId" + ], + "type": "object" + }, + "AWS::FSx::Volume.OpenZFSConfiguration": { + "additionalProperties": false, + "properties": { + "CopyTagsToSnapshots": { + "type": "boolean" + }, + "DataCompressionType": { + "type": "string" + }, + "NfsExports": { + "items": { + "$ref": "#/definitions/AWS::FSx::Volume.NfsExports" + }, + "type": "array" + }, + "Options": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OriginSnapshot": { + "$ref": "#/definitions/AWS::FSx::Volume.OriginSnapshot" + }, + "ParentVolumeId": { + "type": "string" + }, + "ReadOnly": { + "type": "boolean" + }, + "RecordSizeKiB": { + "type": "number" + }, + "StorageCapacityQuotaGiB": { + "type": "number" + }, + "StorageCapacityReservationGiB": { + "type": "number" + }, + "UserAndGroupQuotas": { + "items": { + "$ref": "#/definitions/AWS::FSx::Volume.UserAndGroupQuotas" + }, + "type": "array" + } + }, + "required": [ + "ParentVolumeId" + ], + "type": "object" + }, + "AWS::FSx::Volume.OriginSnapshot": { + "additionalProperties": false, + "properties": { + "CopyStrategy": { + "type": "string" + }, + "SnapshotARN": { + "type": "string" + } + }, + "required": [ + "CopyStrategy", + "SnapshotARN" + ], + "type": "object" + }, + "AWS::FSx::Volume.TieringPolicy": { + "additionalProperties": false, + "properties": { + "CoolingPeriod": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FSx::Volume.UserAndGroupQuotas": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "number" + }, + "StorageCapacityQuotaGiB": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Id", + "StorageCapacityQuotaGiB", + "Type" + ], + "type": "object" + }, + "AWS::FinSpace::Environment": { + "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": { + "DataBundles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "FederationMode": { + "type": "string" + }, + "FederationParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.FederationParameters" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SuperuserParameters": { + "$ref": "#/definitions/AWS::FinSpace::Environment.SuperuserParameters" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FinSpace::Environment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FinSpace::Environment.FederationParameters": { + "additionalProperties": false, + "properties": { + "ApplicationCallBackURL": { + "type": "string" + }, + "AttributeMap": { + "type": "object" + }, + "FederationProviderName": { + "type": "string" + }, + "FederationURN": { + "type": "string" + }, + "SamlMetadataDocument": { + "type": "string" + }, + "SamlMetadataURL": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FinSpace::Environment.SuperuserParameters": { + "additionalProperties": false, + "properties": { + "EmailAddress": { + "type": "string" + }, + "FirstName": { + "type": "string" + }, + "LastName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Forecast::Dataset": { + "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": { + "DataFrequency": { + "type": "string" + }, + "DatasetName": { + "type": "string" + }, + "DatasetType": { + "type": "string" + }, + "Domain": { + "type": "string" + }, + "EncryptionConfig": { + "$ref": "#/definitions/AWS::Forecast::Dataset.EncryptionConfig" + }, + "Schema": { + "$ref": "#/definitions/AWS::Forecast::Dataset.Schema" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::Forecast::Dataset.TagsItems" + }, + "type": "array" + } + }, + "required": [ + "DatasetName", + "DatasetType", + "Domain", + "Schema" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Forecast::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Forecast::Dataset.AttributesItems": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Forecast::Dataset.EncryptionConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Forecast::Dataset.Schema": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::Forecast::Dataset.AttributesItems" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Forecast::Dataset.TagsItems": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Forecast::DatasetGroup": { + "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": { + "DatasetArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DatasetGroupName": { + "type": "string" + }, + "Domain": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatasetGroupName", + "Domain" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Forecast::DatasetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FraudDetector::Detector": { + "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": { + "AssociatedModels": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.Model" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "DetectorId": { + "type": "string" + }, + "DetectorVersionStatus": { + "type": "string" + }, + "EventType": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.EventType" + }, + "RuleExecutionMode": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.Rule" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DetectorId", + "EventType", + "Rules" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FraudDetector::Detector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FraudDetector::Detector.EntityType": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Inline": { + "type": "boolean" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.EventType": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EntityTypes": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.EntityType" + }, + "type": "array" + }, + "EventVariables": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.EventVariable" + }, + "type": "array" + }, + "Inline": { + "type": "boolean" + }, + "Labels": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.Label" + }, + "type": "array" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.EventVariable": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "DataSource": { + "type": "string" + }, + "DataType": { + "type": "string" + }, + "DefaultValue": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Inline": { + "type": "boolean" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VariableType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Label": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Inline": { + "type": "boolean" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Model": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Outcome": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Inline": { + "type": "boolean" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Detector.Rule": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DetectorId": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "Language": { + "type": "string" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Outcomes": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::Detector.Outcome" + }, + "type": "array" + }, + "RuleId": { + "type": "string" + }, + "RuleVersion": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::EntityType": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FraudDetector::EntityType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FraudDetector::EventType": { + "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": { + "Description": { + "type": "string" + }, + "EntityTypes": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::EventType.EntityType" + }, + "type": "array" + }, + "EventVariables": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::EventType.EventVariable" + }, + "type": "array" + }, + "Labels": { + "items": { + "$ref": "#/definitions/AWS::FraudDetector::EventType.Label" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "EntityTypes", + "EventVariables", + "Labels", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FraudDetector::EventType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FraudDetector::EventType.EntityType": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Inline": { + "type": "boolean" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::EventType.EventVariable": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "DataSource": { + "type": "string" + }, + "DataType": { + "type": "string" + }, + "DefaultValue": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Inline": { + "type": "boolean" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VariableType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::FraudDetector::EventType.Label": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Inline": { + "type": "boolean" + }, + "LastUpdatedTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::FraudDetector::Label": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FraudDetector::Label" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FraudDetector::Outcome": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FraudDetector::Outcome" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::FraudDetector::Variable": { + "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": { + "DataSource": { + "type": "string" + }, + "DataType": { + "type": "string" + }, + "DefaultValue": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VariableType": { + "type": "string" + } + }, + "required": [ + "DataSource", + "DataType", + "DefaultValue", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::FraudDetector::Variable" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::Alias": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoutingStrategy": { + "$ref": "#/definitions/AWS::GameLift::Alias.RoutingStrategy" + } + }, + "required": [ + "Name", + "RoutingStrategy" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::Alias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::Alias.RoutingStrategy": { + "additionalProperties": false, + "properties": { + "FleetId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::GameLift::Build": { + "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": { + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Build.StorageLocation" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::Build" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::GameLift::Build.StorageLocation": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::GameLift::Fleet": { + "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": { + "AnywhereConfiguration": { + "$ref": "#/definitions/AWS::GameLift::Fleet.AnywhereConfiguration" + }, + "BuildId": { + "type": "string" + }, + "CertificateConfiguration": { + "$ref": "#/definitions/AWS::GameLift::Fleet.CertificateConfiguration" + }, + "ComputeType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DesiredEC2Instances": { + "type": "number" + }, + "EC2InboundPermissions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.IpPermission" + }, + "type": "array" + }, + "EC2InstanceType": { + "type": "string" + }, + "FleetType": { + "type": "string" + }, + "InstanceRoleARN": { + "type": "string" + }, + "Locations": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.LocationConfiguration" + }, + "type": "array" + }, + "MaxSize": { + "type": "number" + }, + "MetricGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MinSize": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "NewGameSessionProtectionPolicy": { + "type": "string" + }, + "PeerVpcAwsAccountId": { + "type": "string" + }, + "PeerVpcId": { + "type": "string" + }, + "ResourceCreationLimitPolicy": { + "$ref": "#/definitions/AWS::GameLift::Fleet.ResourceCreationLimitPolicy" + }, + "RuntimeConfiguration": { + "$ref": "#/definitions/AWS::GameLift::Fleet.RuntimeConfiguration" + }, + "ScriptId": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::Fleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.AnywhereConfiguration": { + "additionalProperties": false, + "properties": { + "Cost": { + "type": "string" + } + }, + "required": [ + "Cost" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.CertificateConfiguration": { + "additionalProperties": false, + "properties": { + "CertificateType": { + "type": "string" + } + }, + "required": [ + "CertificateType" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.IpPermission": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "IpRange": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "IpRange", + "Protocol", + "ToPort" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.LocationCapacity": { + "additionalProperties": false, + "properties": { + "DesiredEC2Instances": { + "type": "number" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + } + }, + "required": [ + "DesiredEC2Instances", + "MaxSize", + "MinSize" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.LocationConfiguration": { + "additionalProperties": false, + "properties": { + "Location": { + "type": "string" + }, + "LocationCapacity": { + "$ref": "#/definitions/AWS::GameLift::Fleet.LocationCapacity" + } + }, + "required": [ + "Location" + ], + "type": "object" + }, + "AWS::GameLift::Fleet.ResourceCreationLimitPolicy": { + "additionalProperties": false, + "properties": { + "NewGameSessionsPerCreator": { + "type": "number" + }, + "PolicyPeriodInMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GameLift::Fleet.RuntimeConfiguration": { + "additionalProperties": false, + "properties": { + "GameSessionActivationTimeoutSeconds": { + "type": "number" + }, + "MaxConcurrentGameSessionActivations": { + "type": "number" + }, + "ServerProcesses": { + "items": { + "$ref": "#/definitions/AWS::GameLift::Fleet.ServerProcess" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GameLift::Fleet.ServerProcess": { + "additionalProperties": false, + "properties": { + "ConcurrentExecutions": { + "type": "number" + }, + "LaunchPath": { + "type": "string" + }, + "Parameters": { + "type": "string" + } + }, + "required": [ + "ConcurrentExecutions", + "LaunchPath" + ], + "type": "object" + }, + "AWS::GameLift::GameServerGroup": { + "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": { + "AutoScalingPolicy": { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.AutoScalingPolicy" + }, + "BalancingStrategy": { + "type": "string" + }, + "DeleteOption": { + "type": "string" + }, + "GameServerGroupName": { + "type": "string" + }, + "GameServerProtectionPolicy": { + "type": "string" + }, + "InstanceDefinitions": { + "items": { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.InstanceDefinition" + }, + "type": "array" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.LaunchTemplate" + }, + "MaxSize": { + "type": "number" + }, + "MinSize": { + "type": "number" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSubnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GameServerGroupName", + "InstanceDefinitions", + "LaunchTemplate", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::GameServerGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::GameServerGroup.AutoScalingPolicy": { + "additionalProperties": false, + "properties": { + "EstimatedInstanceWarmup": { + "type": "number" + }, + "TargetTrackingConfiguration": { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup.TargetTrackingConfiguration" + } + }, + "required": [ + "TargetTrackingConfiguration" + ], + "type": "object" + }, + "AWS::GameLift::GameServerGroup.InstanceDefinition": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "type": "string" + }, + "WeightedCapacity": { + "type": "string" + } + }, + "required": [ + "InstanceType" + ], + "type": "object" + }, + "AWS::GameLift::GameServerGroup.LaunchTemplate": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GameLift::GameServerGroup.TargetTrackingConfiguration": { + "additionalProperties": false, + "properties": { + "TargetValue": { + "type": "number" + } + }, + "required": [ + "TargetValue" + ], + "type": "object" + }, + "AWS::GameLift::GameSessionQueue": { + "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": { + "CustomEventData": { + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.Destination" + }, + "type": "array" + }, + "FilterConfiguration": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.FilterConfiguration" + }, + "Name": { + "type": "string" + }, + "NotificationTarget": { + "type": "string" + }, + "PlayerLatencyPolicies": { + "items": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy" + }, + "type": "array" + }, + "PriorityConfiguration": { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue.PriorityConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeoutInSeconds": { + "type": "number" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::GameSessionQueue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::GameSessionQueue.Destination": { + "additionalProperties": false, + "properties": { + "DestinationArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GameLift::GameSessionQueue.FilterConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedLocations": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GameLift::GameSessionQueue.PlayerLatencyPolicy": { + "additionalProperties": false, + "properties": { + "MaximumIndividualPlayerLatencyMilliseconds": { + "type": "number" + }, + "PolicyDurationSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GameLift::GameSessionQueue.PriorityConfiguration": { + "additionalProperties": false, + "properties": { + "LocationOrder": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PriorityOrder": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GameLift::Location": { + "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": { + "LocationName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "LocationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::Location" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::MatchmakingConfiguration": { + "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": { + "AcceptanceRequired": { + "type": "boolean" + }, + "AcceptanceTimeoutSeconds": { + "type": "number" + }, + "AdditionalPlayerCount": { + "type": "number" + }, + "BackfillMode": { + "type": "string" + }, + "CustomEventData": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FlexMatchMode": { + "type": "string" + }, + "GameProperties": { + "items": { + "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration.GameProperty" + }, + "type": "array" + }, + "GameSessionData": { + "type": "string" + }, + "GameSessionQueueArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "NotificationTarget": { + "type": "string" + }, + "RequestTimeoutSeconds": { + "type": "number" + }, + "RuleSetName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AcceptanceRequired", + "Name", + "RequestTimeoutSeconds", + "RuleSetName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::MatchmakingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::MatchmakingConfiguration.GameProperty": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::GameLift::MatchmakingRuleSet": { + "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": { + "Name": { + "type": "string" + }, + "RuleSetBody": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "RuleSetBody" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::MatchmakingRuleSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::Script": { + "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": { + "Name": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/AWS::GameLift::Script.S3Location" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "StorageLocation" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GameLift::Script" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GameLift::Script.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::GlobalAccelerator::Accelerator": { + "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": { + "Enabled": { + "type": "boolean" + }, + "IpAddressType": { + "type": "string" + }, + "IpAddresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GlobalAccelerator::Accelerator" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GlobalAccelerator::EndpointGroup": { + "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": { + "EndpointConfigurations": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.EndpointConfiguration" + }, + "type": "array" + }, + "EndpointGroupRegion": { + "type": "string" + }, + "HealthCheckIntervalSeconds": { + "type": "number" + }, + "HealthCheckPath": { + "type": "string" + }, + "HealthCheckPort": { + "type": "number" + }, + "HealthCheckProtocol": { + "type": "string" + }, + "ListenerArn": { + "type": "string" + }, + "PortOverrides": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup.PortOverride" + }, + "type": "array" + }, + "ThresholdCount": { + "type": "number" + }, + "TrafficDialPercentage": { + "type": "number" + } + }, + "required": [ + "EndpointGroupRegion", + "ListenerArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GlobalAccelerator::EndpointGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GlobalAccelerator::EndpointGroup.EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "ClientIPPreservationEnabled": { + "type": "boolean" + }, + "EndpointId": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "EndpointId" + ], + "type": "object" + }, + "AWS::GlobalAccelerator::EndpointGroup.PortOverride": { + "additionalProperties": false, + "properties": { + "EndpointPort": { + "type": "number" + }, + "ListenerPort": { + "type": "number" + } + }, + "required": [ + "EndpointPort", + "ListenerPort" + ], + "type": "object" + }, + "AWS::GlobalAccelerator::Listener": { + "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": { + "AcceleratorArn": { + "type": "string" + }, + "ClientAffinity": { + "type": "string" + }, + "PortRanges": { + "items": { + "$ref": "#/definitions/AWS::GlobalAccelerator::Listener.PortRange" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + } + }, + "required": [ + "AcceleratorArn", + "PortRanges", + "Protocol" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GlobalAccelerator::Listener" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GlobalAccelerator::Listener.PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::Glue::Classifier": { + "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": { + "CsvClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.CsvClassifier" + }, + "GrokClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.GrokClassifier" + }, + "JsonClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.JsonClassifier" + }, + "XMLClassifier": { + "$ref": "#/definitions/AWS::Glue::Classifier.XMLClassifier" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Classifier" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Glue::Classifier.CsvClassifier": { + "additionalProperties": false, + "properties": { + "AllowSingleColumn": { + "type": "boolean" + }, + "ContainsHeader": { + "type": "string" + }, + "Delimiter": { + "type": "string" + }, + "DisableValueTrimming": { + "type": "boolean" + }, + "Header": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "QuoteSymbol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Classifier.GrokClassifier": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "CustomPatterns": { + "type": "string" + }, + "GrokPattern": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Classification", + "GrokPattern" + ], + "type": "object" + }, + "AWS::Glue::Classifier.JsonClassifier": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::Glue::Classifier.XMLClassifier": { + "additionalProperties": false, + "properties": { + "Classification": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RowTag": { + "type": "string" + } + }, + "required": [ + "Classification", + "RowTag" + ], + "type": "object" + }, + "AWS::Glue::Connection": { + "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": { + "CatalogId": { + "type": "string" + }, + "ConnectionInput": { + "$ref": "#/definitions/AWS::Glue::Connection.ConnectionInput" + } + }, + "required": [ + "CatalogId", + "ConnectionInput" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Connection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Connection.ConnectionInput": { + "additionalProperties": false, + "properties": { + "ConnectionProperties": { + "type": "object" + }, + "ConnectionType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "MatchCriteria": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "PhysicalConnectionRequirements": { + "$ref": "#/definitions/AWS::Glue::Connection.PhysicalConnectionRequirements" + } + }, + "required": [ + "ConnectionType" + ], + "type": "object" + }, + "AWS::Glue::Connection.PhysicalConnectionRequirements": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler": { + "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": { + "Classifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Configuration": { + "type": "string" + }, + "CrawlerSecurityConfiguration": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecrawlPolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.RecrawlPolicy" + }, + "Role": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Glue::Crawler.Schedule" + }, + "SchemaChangePolicy": { + "$ref": "#/definitions/AWS::Glue::Crawler.SchemaChangePolicy" + }, + "TablePrefix": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Targets": { + "$ref": "#/definitions/AWS::Glue::Crawler.Targets" + } + }, + "required": [ + "Role", + "Targets" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Crawler" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Crawler.CatalogTarget": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "type": "string" + }, + "Tables": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.DynamoDBTarget": { + "additionalProperties": false, + "properties": { + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.JdbcTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.MongoDBTarget": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.RecrawlPolicy": { + "additionalProperties": false, + "properties": { + "RecrawlBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.S3Target": { + "additionalProperties": false, + "properties": { + "ConnectionName": { + "type": "string" + }, + "DlqEventQueueArn": { + "type": "string" + }, + "EventQueueArn": { + "type": "string" + }, + "Exclusions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + }, + "SampleSize": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.SchemaChangePolicy": { + "additionalProperties": false, + "properties": { + "DeleteBehavior": { + "type": "string" + }, + "UpdateBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Crawler.Targets": { + "additionalProperties": false, + "properties": { + "CatalogTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.CatalogTarget" + }, + "type": "array" + }, + "DynamoDBTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.DynamoDBTarget" + }, + "type": "array" + }, + "JdbcTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.JdbcTarget" + }, + "type": "array" + }, + "MongoDBTargets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.MongoDBTarget" + }, + "type": "array" + }, + "S3Targets": { + "items": { + "$ref": "#/definitions/AWS::Glue::Crawler.S3Target" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::DataCatalogEncryptionSettings": { + "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": { + "CatalogId": { + "type": "string" + }, + "DataCatalogEncryptionSettings": { + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings" + } + }, + "required": [ + "CatalogId", + "DataCatalogEncryptionSettings" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::DataCatalogEncryptionSettings" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "ReturnConnectionPasswordEncrypted": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::DataCatalogEncryptionSettings.DataCatalogEncryptionSettings": { + "additionalProperties": false, + "properties": { + "ConnectionPasswordEncryption": { + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.ConnectionPasswordEncryption" + }, + "EncryptionAtRest": { + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest" + } + }, + "type": "object" + }, + "AWS::Glue::DataCatalogEncryptionSettings.EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "CatalogEncryptionMode": { + "type": "string" + }, + "SseAwsKmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database": { + "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": { + "CatalogId": { + "type": "string" + }, + "DatabaseInput": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseInput" + } + }, + "required": [ + "CatalogId", + "DatabaseInput" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Database" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Database.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Database.DatabaseInput": { + "additionalProperties": false, + "properties": { + "CreateTableDefaultPermissions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Database.PrincipalPrivileges" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "LocationUri": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "TargetDatabase": { + "$ref": "#/definitions/AWS::Glue::Database.DatabaseIdentifier" + } + }, + "type": "object" + }, + "AWS::Glue::Database.PrincipalPrivileges": { + "additionalProperties": false, + "properties": { + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "$ref": "#/definitions/AWS::Glue::Database.DataLakePrincipal" + } + }, + "type": "object" + }, + "AWS::Glue::DevEndpoint": { + "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": { + "Arguments": { + "type": "object" + }, + "EndpointName": { + "type": "string" + }, + "ExtraJarsS3Path": { + "type": "string" + }, + "ExtraPythonLibsS3Path": { + "type": "string" + }, + "GlueVersion": { + "type": "string" + }, + "NumberOfNodes": { + "type": "number" + }, + "NumberOfWorkers": { + "type": "number" + }, + "PublicKey": { + "type": "string" + }, + "PublicKeys": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RoleArn": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "WorkerType": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::DevEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Job": { + "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": { + "AllocatedCapacity": { + "type": "number" + }, + "Command": { + "$ref": "#/definitions/AWS::Glue::Job.JobCommand" + }, + "Connections": { + "$ref": "#/definitions/AWS::Glue::Job.ConnectionsList" + }, + "DefaultArguments": { + "type": "object" + }, + "Description": { + "type": "string" + }, + "ExecutionClass": { + "type": "string" + }, + "ExecutionProperty": { + "$ref": "#/definitions/AWS::Glue::Job.ExecutionProperty" + }, + "GlueVersion": { + "type": "string" + }, + "LogUri": { + "type": "string" + }, + "MaxCapacity": { + "type": "number" + }, + "MaxRetries": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "NonOverridableArguments": { + "type": "object" + }, + "NotificationProperty": { + "$ref": "#/definitions/AWS::Glue::Job.NotificationProperty" + }, + "NumberOfWorkers": { + "type": "number" + }, + "Role": { + "type": "string" + }, + "SecurityConfiguration": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Timeout": { + "type": "number" + }, + "WorkerType": { + "type": "string" + } + }, + "required": [ + "Command", + "Role" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Job" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Job.ConnectionsList": { + "additionalProperties": false, + "properties": { + "Connections": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Job.ExecutionProperty": { + "additionalProperties": false, + "properties": { + "MaxConcurrentRuns": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Job.JobCommand": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "PythonVersion": { + "type": "string" + }, + "ScriptLocation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Job.NotificationProperty": { + "additionalProperties": false, + "properties": { + "NotifyDelayAfter": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::MLTransform": { + "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": { + "Description": { + "type": "string" + }, + "GlueVersion": { + "type": "string" + }, + "InputRecordTables": { + "$ref": "#/definitions/AWS::Glue::MLTransform.InputRecordTables" + }, + "MaxCapacity": { + "type": "number" + }, + "MaxRetries": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "NumberOfWorkers": { + "type": "number" + }, + "Role": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Timeout": { + "type": "number" + }, + "TransformEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformEncryption" + }, + "TransformParameters": { + "$ref": "#/definitions/AWS::Glue::MLTransform.TransformParameters" + }, + "WorkerType": { + "type": "string" + } + }, + "required": [ + "InputRecordTables", + "Role", + "TransformParameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::MLTransform" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.FindMatchesParameters": { + "additionalProperties": false, + "properties": { + "AccuracyCostTradeoff": { + "type": "number" + }, + "EnforceProvidedLabels": { + "type": "boolean" + }, + "PrecisionRecallTradeoff": { + "type": "number" + }, + "PrimaryKeyColumnName": { + "type": "string" + } + }, + "required": [ + "PrimaryKeyColumnName" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.GlueTables": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "ConnectionName": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.InputRecordTables": { + "additionalProperties": false, + "properties": { + "GlueTables": { + "items": { + "$ref": "#/definitions/AWS::Glue::MLTransform.GlueTables" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::MLTransform.MLUserDataEncryption": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MLUserDataEncryptionMode": { + "type": "string" + } + }, + "required": [ + "MLUserDataEncryptionMode" + ], + "type": "object" + }, + "AWS::Glue::MLTransform.TransformEncryption": { + "additionalProperties": false, + "properties": { + "MLUserDataEncryption": { + "$ref": "#/definitions/AWS::Glue::MLTransform.MLUserDataEncryption" + }, + "TaskRunSecurityConfigurationName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::MLTransform.TransformParameters": { + "additionalProperties": false, + "properties": { + "FindMatchesParameters": { + "$ref": "#/definitions/AWS::Glue::MLTransform.FindMatchesParameters" + }, + "TransformType": { + "type": "string" + } + }, + "required": [ + "TransformType" + ], + "type": "object" + }, + "AWS::Glue::Partition": { + "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": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "PartitionInput": { + "$ref": "#/definitions/AWS::Glue::Partition.PartitionInput" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "DatabaseName", + "PartitionInput", + "TableName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Partition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Partition.Column": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Partition.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "type": "string" + }, + "SortOrder": { + "type": "number" + } + }, + "required": [ + "Column" + ], + "type": "object" + }, + "AWS::Glue::Partition.PartitionInput": { + "additionalProperties": false, + "properties": { + "Parameters": { + "type": "object" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Partition.StorageDescriptor" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Values" + ], + "type": "object" + }, + "AWS::Glue::Partition.SchemaId": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + }, + "SchemaName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SchemaReference": { + "additionalProperties": false, + "properties": { + "SchemaId": { + "$ref": "#/definitions/AWS::Glue::Partition.SchemaId" + }, + "SchemaVersionId": { + "type": "string" + }, + "SchemaVersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Partition.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Column" + }, + "type": "array" + }, + "Compressed": { + "type": "boolean" + }, + "InputFormat": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SchemaReference": { + "$ref": "#/definitions/AWS::Glue::Partition.SchemaReference" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Partition.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Partition.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::Registry": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Registry" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema": { + "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": { + "CheckpointVersion": { + "$ref": "#/definitions/AWS::Glue::Schema.SchemaVersion" + }, + "Compatibility": { + "type": "string" + }, + "DataFormat": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Registry": { + "$ref": "#/definitions/AWS::Glue::Schema.Registry" + }, + "SchemaDefinition": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Compatibility", + "DataFormat", + "Name", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Schema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Schema.Registry": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Schema.SchemaVersion": { + "additionalProperties": false, + "properties": { + "IsLatest": { + "type": "boolean" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersion": { + "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": { + "Schema": { + "$ref": "#/definitions/AWS::Glue::SchemaVersion.Schema" + }, + "SchemaDefinition": { + "type": "string" + } + }, + "required": [ + "Schema", + "SchemaDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::SchemaVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::SchemaVersion.Schema": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + }, + "SchemaName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SchemaVersionMetadata": { + "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": { + "Key": { + "type": "string" + }, + "SchemaVersionId": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "SchemaVersionId", + "Value" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::SchemaVersionMetadata" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::SecurityConfiguration": { + "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": { + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.EncryptionConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "EncryptionConfiguration", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::SecurityConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.CloudWatchEncryption": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchEncryption": { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.CloudWatchEncryption" + }, + "JobBookmarksEncryption": { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.JobBookmarksEncryption" + }, + "S3Encryptions": { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration.S3Encryptions" + } + }, + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.JobBookmarksEncryption": { + "additionalProperties": false, + "properties": { + "JobBookmarksEncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.S3Encryption": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "type": "string" + }, + "S3EncryptionMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::SecurityConfiguration.S3Encryptions": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::Glue::Table": { + "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": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "TableInput": { + "$ref": "#/definitions/AWS::Glue::Table.TableInput" + } + }, + "required": [ + "CatalogId", + "DatabaseName", + "TableInput" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Table" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Table.Column": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Glue::Table.Order": { + "additionalProperties": false, + "properties": { + "Column": { + "type": "string" + }, + "SortOrder": { + "type": "number" + } + }, + "required": [ + "Column", + "SortOrder" + ], + "type": "object" + }, + "AWS::Glue::Table.SchemaId": { + "additionalProperties": false, + "properties": { + "RegistryName": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + }, + "SchemaName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SchemaReference": { + "additionalProperties": false, + "properties": { + "SchemaId": { + "$ref": "#/definitions/AWS::Glue::Table.SchemaId" + }, + "SchemaVersionId": { + "type": "string" + }, + "SchemaVersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SerdeInfo": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SerializationLibrary": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.SkewedInfo": { + "additionalProperties": false, + "properties": { + "SkewedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SkewedColumnValueLocationMaps": { + "type": "object" + }, + "SkewedColumnValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Glue::Table.StorageDescriptor": { + "additionalProperties": false, + "properties": { + "BucketColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Columns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" + }, + "Compressed": { + "type": "boolean" + }, + "InputFormat": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "NumberOfBuckets": { + "type": "number" + }, + "OutputFormat": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "SchemaReference": { + "$ref": "#/definitions/AWS::Glue::Table.SchemaReference" + }, + "SerdeInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SerdeInfo" + }, + "SkewedInfo": { + "$ref": "#/definitions/AWS::Glue::Table.SkewedInfo" + }, + "SortColumns": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Order" + }, + "type": "array" + }, + "StoredAsSubDirectories": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Glue::Table.TableIdentifier": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Table.TableInput": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "PartitionKeys": { + "items": { + "$ref": "#/definitions/AWS::Glue::Table.Column" + }, + "type": "array" + }, + "Retention": { + "type": "number" + }, + "StorageDescriptor": { + "$ref": "#/definitions/AWS::Glue::Table.StorageDescriptor" + }, + "TableType": { + "type": "string" + }, + "TargetTable": { + "$ref": "#/definitions/AWS::Glue::Table.TableIdentifier" + }, + "ViewExpandedText": { + "type": "string" + }, + "ViewOriginalText": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger": { + "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": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Trigger.Action" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "EventBatchingCondition": { + "$ref": "#/definitions/AWS::Glue::Trigger.EventBatchingCondition" + }, + "Name": { + "type": "string" + }, + "Predicate": { + "$ref": "#/definitions/AWS::Glue::Trigger.Predicate" + }, + "Schedule": { + "type": "string" + }, + "StartOnCreation": { + "type": "boolean" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + }, + "WorkflowName": { + "type": "string" + } + }, + "required": [ + "Actions", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Trigger" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Glue::Trigger.Action": { + "additionalProperties": false, + "properties": { + "Arguments": { + "type": "object" + }, + "CrawlerName": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "NotificationProperty": { + "$ref": "#/definitions/AWS::Glue::Trigger.NotificationProperty" + }, + "SecurityConfiguration": { + "type": "string" + }, + "Timeout": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Condition": { + "additionalProperties": false, + "properties": { + "CrawlState": { + "type": "string" + }, + "CrawlerName": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "LogicalOperator": { + "type": "string" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.EventBatchingCondition": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "BatchWindow": { + "type": "number" + } + }, + "required": [ + "BatchSize" + ], + "type": "object" + }, + "AWS::Glue::Trigger.NotificationProperty": { + "additionalProperties": false, + "properties": { + "NotifyDelayAfter": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Glue::Trigger.Predicate": { + "additionalProperties": false, + "properties": { + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::Glue::Trigger.Condition" + }, + "type": "array" + }, + "Logical": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Glue::Workflow": { + "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": { + "DefaultRunProperties": { + "type": "object" + }, + "Description": { + "type": "string" + }, + "MaxConcurrentRuns": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Glue::Workflow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Grafana::Workspace": { + "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": { + "AccountAccessType": { + "type": "string" + }, + "AuthenticationProviders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClientToken": { + "type": "string" + }, + "DataSources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NotificationDestinations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationRoleName": { + "type": "string" + }, + "OrganizationalUnits": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PermissionType": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SamlConfiguration": { + "$ref": "#/definitions/AWS::Grafana::Workspace.SamlConfiguration" + }, + "StackSetName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::Grafana::Workspace.VpcConfiguration" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Grafana::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Grafana::Workspace.AssertionAttributes": { + "additionalProperties": false, + "properties": { + "Email": { + "type": "string" + }, + "Groups": { + "type": "string" + }, + "Login": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Org": { + "type": "string" + }, + "Role": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Grafana::Workspace.IdpMetadata": { + "additionalProperties": false, + "properties": { + "Url": { + "type": "string" + }, + "Xml": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Grafana::Workspace.RoleValues": { + "additionalProperties": false, + "properties": { + "Admin": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Editor": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Grafana::Workspace.SamlConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedOrganizations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AssertionAttributes": { + "$ref": "#/definitions/AWS::Grafana::Workspace.AssertionAttributes" + }, + "IdpMetadata": { + "$ref": "#/definitions/AWS::Grafana::Workspace.IdpMetadata" + }, + "LoginValidityDuration": { + "type": "number" + }, + "RoleValues": { + "$ref": "#/definitions/AWS::Grafana::Workspace.RoleValues" + } + }, + "required": [ + "IdpMetadata" + ], + "type": "object" + }, + "AWS::Grafana::Workspace.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "SubnetIds" + ], + "type": "object" + }, + "AWS::Greengrass::ConnectorDefinition": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::ConnectorDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::ConnectorDefinition.Connector": { + "additionalProperties": false, + "properties": { + "ConnectorArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Parameters": { + "type": "object" + } + }, + "required": [ + "ConnectorArn", + "Id" + ], + "type": "object" + }, + "AWS::Greengrass::ConnectorDefinition.ConnectorDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Connectors": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition.Connector" + }, + "type": "array" + } + }, + "required": [ + "Connectors" + ], + "type": "object" + }, + "AWS::Greengrass::ConnectorDefinitionVersion": { + "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": { + "ConnectorDefinitionId": { + "type": "string" + }, + "Connectors": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinitionVersion.Connector" + }, + "type": "array" + } + }, + "required": [ + "ConnectorDefinitionId", + "Connectors" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::ConnectorDefinitionVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::ConnectorDefinitionVersion.Connector": { + "additionalProperties": false, + "properties": { + "ConnectorArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Parameters": { + "type": "object" + } + }, + "required": [ + "ConnectorArn", + "Id" + ], + "type": "object" + }, + "AWS::Greengrass::CoreDefinition": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.CoreDefinitionVersion" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::CoreDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::CoreDefinition.Core": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SyncShadow": { + "type": "boolean" + }, + "ThingArn": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "Id", + "ThingArn" + ], + "type": "object" + }, + "AWS::Greengrass::CoreDefinition.CoreDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Cores": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::CoreDefinition.Core" + }, + "type": "array" + } + }, + "required": [ + "Cores" + ], + "type": "object" + }, + "AWS::Greengrass::CoreDefinitionVersion": { + "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": { + "CoreDefinitionId": { + "type": "string" + }, + "Cores": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::CoreDefinitionVersion.Core" + }, + "type": "array" + } + }, + "required": [ + "CoreDefinitionId", + "Cores" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::CoreDefinitionVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::CoreDefinitionVersion.Core": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SyncShadow": { + "type": "boolean" + }, + "ThingArn": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "Id", + "ThingArn" + ], + "type": "object" + }, + "AWS::Greengrass::DeviceDefinition": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::DeviceDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::DeviceDefinition.Device": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SyncShadow": { + "type": "boolean" + }, + "ThingArn": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "Id", + "ThingArn" + ], + "type": "object" + }, + "AWS::Greengrass::DeviceDefinition.DeviceDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition.Device" + }, + "type": "array" + } + }, + "required": [ + "Devices" + ], + "type": "object" + }, + "AWS::Greengrass::DeviceDefinitionVersion": { + "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": { + "DeviceDefinitionId": { + "type": "string" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinitionVersion.Device" + }, + "type": "array" + } + }, + "required": [ + "DeviceDefinitionId", + "Devices" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::DeviceDefinitionVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::DeviceDefinitionVersion.Device": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SyncShadow": { + "type": "boolean" + }, + "ThingArn": { + "type": "string" + } + }, + "required": [ + "CertificateArn", + "Id", + "ThingArn" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::FunctionDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.DefaultConfig": { + "additionalProperties": false, + "properties": { + "Execution": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution" + } + }, + "required": [ + "Execution" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.Environment": { + "additionalProperties": false, + "properties": { + "AccessSysfs": { + "type": "boolean" + }, + "Execution": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Execution" + }, + "ResourceAccessPolicies": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy" + }, + "type": "array" + }, + "Variables": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.Execution": { + "additionalProperties": false, + "properties": { + "IsolationMode": { + "type": "string" + }, + "RunAs": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.RunAs" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.Function": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + }, + "FunctionConfiguration": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.FunctionConfiguration" + }, + "Id": { + "type": "string" + } + }, + "required": [ + "FunctionArn", + "FunctionConfiguration", + "Id" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.FunctionConfiguration": { + "additionalProperties": false, + "properties": { + "EncodingType": { + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Environment" + }, + "ExecArgs": { + "type": "string" + }, + "Executable": { + "type": "string" + }, + "MemorySize": { + "type": "number" + }, + "Pinned": { + "type": "boolean" + }, + "Timeout": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.FunctionDefinitionVersion": { + "additionalProperties": false, + "properties": { + "DefaultConfig": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.DefaultConfig" + }, + "Functions": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition.Function" + }, + "type": "array" + } + }, + "required": [ + "Functions" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.ResourceAccessPolicy": { + "additionalProperties": false, + "properties": { + "Permission": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "required": [ + "ResourceId" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinition.RunAs": { + "additionalProperties": false, + "properties": { + "Gid": { + "type": "number" + }, + "Uid": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion": { + "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": { + "DefaultConfig": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig" + }, + "FunctionDefinitionId": { + "type": "string" + }, + "Functions": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Function" + }, + "type": "array" + } + }, + "required": [ + "FunctionDefinitionId", + "Functions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::FunctionDefinitionVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.DefaultConfig": { + "additionalProperties": false, + "properties": { + "Execution": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution" + } + }, + "required": [ + "Execution" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.Environment": { + "additionalProperties": false, + "properties": { + "AccessSysfs": { + "type": "boolean" + }, + "Execution": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Execution" + }, + "ResourceAccessPolicies": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy" + }, + "type": "array" + }, + "Variables": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.Execution": { + "additionalProperties": false, + "properties": { + "IsolationMode": { + "type": "string" + }, + "RunAs": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.RunAs" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.Function": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + }, + "FunctionConfiguration": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration" + }, + "Id": { + "type": "string" + } + }, + "required": [ + "FunctionArn", + "FunctionConfiguration", + "Id" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.FunctionConfiguration": { + "additionalProperties": false, + "properties": { + "EncodingType": { + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion.Environment" + }, + "ExecArgs": { + "type": "string" + }, + "Executable": { + "type": "string" + }, + "MemorySize": { + "type": "number" + }, + "Pinned": { + "type": "boolean" + }, + "Timeout": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.ResourceAccessPolicy": { + "additionalProperties": false, + "properties": { + "Permission": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "required": [ + "ResourceId" + ], + "type": "object" + }, + "AWS::Greengrass::FunctionDefinitionVersion.RunAs": { + "additionalProperties": false, + "properties": { + "Gid": { + "type": "number" + }, + "Uid": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Greengrass::Group": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::Group.GroupVersion" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::Group" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::Group.GroupVersion": { + "additionalProperties": false, + "properties": { + "ConnectorDefinitionVersionArn": { + "type": "string" + }, + "CoreDefinitionVersionArn": { + "type": "string" + }, + "DeviceDefinitionVersionArn": { + "type": "string" + }, + "FunctionDefinitionVersionArn": { + "type": "string" + }, + "LoggerDefinitionVersionArn": { + "type": "string" + }, + "ResourceDefinitionVersionArn": { + "type": "string" + }, + "SubscriptionDefinitionVersionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Greengrass::GroupVersion": { + "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": { + "ConnectorDefinitionVersionArn": { + "type": "string" + }, + "CoreDefinitionVersionArn": { + "type": "string" + }, + "DeviceDefinitionVersionArn": { + "type": "string" + }, + "FunctionDefinitionVersionArn": { + "type": "string" + }, + "GroupId": { + "type": "string" + }, + "LoggerDefinitionVersionArn": { + "type": "string" + }, + "ResourceDefinitionVersionArn": { + "type": "string" + }, + "SubscriptionDefinitionVersionArn": { + "type": "string" + } + }, + "required": [ + "GroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::GroupVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::LoggerDefinition": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::LoggerDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::LoggerDefinition.Logger": { + "additionalProperties": false, + "properties": { + "Component": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "Space": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Component", + "Id", + "Level", + "Type" + ], + "type": "object" + }, + "AWS::Greengrass::LoggerDefinition.LoggerDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Loggers": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition.Logger" + }, + "type": "array" + } + }, + "required": [ + "Loggers" + ], + "type": "object" + }, + "AWS::Greengrass::LoggerDefinitionVersion": { + "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": { + "LoggerDefinitionId": { + "type": "string" + }, + "Loggers": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::LoggerDefinitionVersion.Logger" + }, + "type": "array" + } + }, + "required": [ + "LoggerDefinitionId", + "Loggers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::LoggerDefinitionVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::LoggerDefinitionVersion.Logger": { + "additionalProperties": false, + "properties": { + "Component": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "Space": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Component", + "Id", + "Level", + "Type" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::ResourceDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.GroupOwnerSetting": { + "additionalProperties": false, + "properties": { + "AutoAddGroupOwner": { + "type": "boolean" + }, + "GroupOwner": { + "type": "string" + } + }, + "required": [ + "AutoAddGroupOwner" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData": { + "additionalProperties": false, + "properties": { + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting" + }, + "SourcePath": { + "type": "string" + } + }, + "required": [ + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "type": "string" + }, + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.GroupOwnerSetting" + }, + "SourcePath": { + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceDataContainer": { + "additionalProperties": false, + "properties": { + "LocalDeviceResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalDeviceResourceData" + }, + "LocalVolumeResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.LocalVolumeResourceData" + }, + "S3MachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData" + }, + "SageMakerMachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData" + }, + "SecretsManagerSecretResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData" + } + }, + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Resources": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceInstance" + }, + "type": "array" + } + }, + "required": [ + "Resources" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting": { + "additionalProperties": false, + "properties": { + "GroupOwner": { + "type": "string" + }, + "GroupPermission": { + "type": "string" + } + }, + "required": [ + "GroupOwner", + "GroupPermission" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.ResourceInstance": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResourceDataContainer": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDataContainer" + } + }, + "required": [ + "Id", + "Name", + "ResourceDataContainer" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.S3MachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "DestinationPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.SageMakerMachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition.ResourceDownloadOwnerSetting" + }, + "SageMakerJobArn": { + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SageMakerJobArn" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinition.SecretsManagerSecretResourceData": { + "additionalProperties": false, + "properties": { + "ARN": { + "type": "string" + }, + "AdditionalStagingLabelsToDownload": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ARN" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion": { + "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": { + "ResourceDefinitionId": { + "type": "string" + }, + "Resources": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance" + }, + "type": "array" + } + }, + "required": [ + "ResourceDefinitionId", + "Resources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::ResourceDefinitionVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting": { + "additionalProperties": false, + "properties": { + "AutoAddGroupOwner": { + "type": "boolean" + }, + "GroupOwner": { + "type": "string" + } + }, + "required": [ + "AutoAddGroupOwner" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData": { + "additionalProperties": false, + "properties": { + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting" + }, + "SourcePath": { + "type": "string" + } + }, + "required": [ + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "type": "string" + }, + "GroupOwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.GroupOwnerSetting" + }, + "SourcePath": { + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SourcePath" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer": { + "additionalProperties": false, + "properties": { + "LocalDeviceResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalDeviceResourceData" + }, + "LocalVolumeResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.LocalVolumeResourceData" + }, + "S3MachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData" + }, + "SageMakerMachineLearningModelResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData" + }, + "SecretsManagerSecretResourceData": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData" + } + }, + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting": { + "additionalProperties": false, + "properties": { + "GroupOwner": { + "type": "string" + }, + "GroupPermission": { + "type": "string" + } + }, + "required": [ + "GroupOwner", + "GroupPermission" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.ResourceInstance": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResourceDataContainer": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDataContainer" + } + }, + "required": [ + "Id", + "Name", + "ResourceDataContainer" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.S3MachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "DestinationPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.SageMakerMachineLearningModelResourceData": { + "additionalProperties": false, + "properties": { + "DestinationPath": { + "type": "string" + }, + "OwnerSetting": { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion.ResourceDownloadOwnerSetting" + }, + "SageMakerJobArn": { + "type": "string" + } + }, + "required": [ + "DestinationPath", + "SageMakerJobArn" + ], + "type": "object" + }, + "AWS::Greengrass::ResourceDefinitionVersion.SecretsManagerSecretResourceData": { + "additionalProperties": false, + "properties": { + "ARN": { + "type": "string" + }, + "AdditionalStagingLabelsToDownload": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ARN" + ], + "type": "object" + }, + "AWS::Greengrass::SubscriptionDefinition": { + "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": { + "InitialVersion": { + "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion" + }, + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::SubscriptionDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::SubscriptionDefinition.Subscription": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "Id", + "Source", + "Subject", + "Target" + ], + "type": "object" + }, + "AWS::Greengrass::SubscriptionDefinition.SubscriptionDefinitionVersion": { + "additionalProperties": false, + "properties": { + "Subscriptions": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition.Subscription" + }, + "type": "array" + } + }, + "required": [ + "Subscriptions" + ], + "type": "object" + }, + "AWS::Greengrass::SubscriptionDefinitionVersion": { + "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": { + "SubscriptionDefinitionId": { + "type": "string" + }, + "Subscriptions": { + "items": { + "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinitionVersion.Subscription" + }, + "type": "array" + } + }, + "required": [ + "SubscriptionDefinitionId", + "Subscriptions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Greengrass::SubscriptionDefinitionVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Greengrass::SubscriptionDefinitionVersion.Subscription": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "Id", + "Source", + "Subject", + "Target" + ], + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion": { + "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": { + "InlineRecipe": { + "type": "string" + }, + "LambdaFunction": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GreengrassV2::ComponentVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement": { + "additionalProperties": false, + "properties": { + "DependencyType": { + "type": "string" + }, + "VersionRequirement": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.ComponentPlatform": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaContainerParams": { + "additionalProperties": false, + "properties": { + "Devices": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount" + }, + "type": "array" + }, + "MemorySizeInKB": { + "type": "number" + }, + "MountROSysfs": { + "type": "boolean" + }, + "Volumes": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaDeviceMount": { + "additionalProperties": false, + "properties": { + "AddGroupOwner": { + "type": "boolean" + }, + "Path": { + "type": "string" + }, + "Permission": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaEventSource": { + "additionalProperties": false, + "properties": { + "Topic": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters": { + "additionalProperties": false, + "properties": { + "EnvironmentVariables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "EventSources": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaEventSource" + }, + "type": "array" + }, + "ExecArgs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InputPayloadEncodingType": { + "type": "string" + }, + "LinuxProcessParams": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams" + }, + "MaxIdleTimeInSeconds": { + "type": "number" + }, + "MaxInstancesCount": { + "type": "number" + }, + "MaxQueueSize": { + "type": "number" + }, + "Pinned": { + "type": "boolean" + }, + "StatusTimeoutInSeconds": { + "type": "number" + }, + "TimeoutInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaFunctionRecipeSource": { + "additionalProperties": false, + "properties": { + "ComponentDependencies": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentDependencyRequirement" + } + }, + "type": "object" + }, + "ComponentLambdaParameters": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaExecutionParameters" + }, + "ComponentName": { + "type": "string" + }, + "ComponentPlatforms": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.ComponentPlatform" + }, + "type": "array" + }, + "ComponentVersion": { + "type": "string" + }, + "LambdaArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaLinuxProcessParams": { + "additionalProperties": false, + "properties": { + "ContainerParams": { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion.LambdaContainerParams" + }, + "IsolationMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::ComponentVersion.LambdaVolumeMount": { + "additionalProperties": false, + "properties": { + "AddGroupOwner": { + "type": "boolean" + }, + "DestinationPath": { + "type": "string" + }, + "Permission": { + "type": "string" + }, + "SourcePath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment": { + "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": { + "Components": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.ComponentDeploymentSpecification" + } + }, + "type": "object" + }, + "DeploymentName": { + "type": "string" + }, + "DeploymentPolicies": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentPolicies" + }, + "IotJobConfiguration": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentIoTJobConfiguration" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GreengrassV2::Deployment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GreengrassV2::Deployment.ComponentConfigurationUpdate": { + "additionalProperties": false, + "properties": { + "Merge": { + "type": "string" + }, + "Reset": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.ComponentDeploymentSpecification": { + "additionalProperties": false, + "properties": { + "ComponentVersion": { + "type": "string" + }, + "ConfigurationUpdate": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.ComponentConfigurationUpdate" + }, + "RunWith": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.ComponentRunWith" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.ComponentRunWith": { + "additionalProperties": false, + "properties": { + "PosixUser": { + "type": "string" + }, + "SystemResourceLimits": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.SystemResourceLimits" + }, + "WindowsUser": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.DeploymentComponentUpdatePolicy": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "TimeoutInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.DeploymentConfigurationValidationPolicy": { + "additionalProperties": false, + "properties": { + "TimeoutInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.DeploymentIoTJobConfiguration": { + "additionalProperties": false, + "properties": { + "AbortConfig": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobAbortConfig" + }, + "JobExecutionsRolloutConfig": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobExecutionsRolloutConfig" + }, + "TimeoutConfig": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobTimeoutConfig" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.DeploymentPolicies": { + "additionalProperties": false, + "properties": { + "ComponentUpdatePolicy": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentComponentUpdatePolicy" + }, + "ConfigurationValidationPolicy": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.DeploymentConfigurationValidationPolicy" + }, + "FailureHandlingPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.IoTJobAbortConfig": { + "additionalProperties": false, + "properties": { + "CriteriaList": { + "items": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobAbortCriteria" + }, + "type": "array" + } + }, + "required": [ + "CriteriaList" + ], + "type": "object" + }, + "AWS::GreengrassV2::Deployment.IoTJobAbortCriteria": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "FailureType": { + "type": "string" + }, + "MinNumberOfExecutedThings": { + "type": "number" + }, + "ThresholdPercentage": { + "type": "number" + } + }, + "required": [ + "Action", + "FailureType", + "MinNumberOfExecutedThings", + "ThresholdPercentage" + ], + "type": "object" + }, + "AWS::GreengrassV2::Deployment.IoTJobExecutionsRolloutConfig": { + "additionalProperties": false, + "properties": { + "ExponentialRate": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobExponentialRolloutRate" + }, + "MaximumPerMinute": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.IoTJobExponentialRolloutRate": { + "additionalProperties": false, + "properties": { + "BaseRatePerMinute": { + "type": "number" + }, + "IncrementFactor": { + "type": "number" + }, + "RateIncreaseCriteria": { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment.IoTJobRateIncreaseCriteria" + } + }, + "required": [ + "BaseRatePerMinute", + "IncrementFactor", + "RateIncreaseCriteria" + ], + "type": "object" + }, + "AWS::GreengrassV2::Deployment.IoTJobRateIncreaseCriteria": { + "additionalProperties": false, + "properties": { + "NumberOfNotifiedThings": { + "type": "number" + }, + "NumberOfSucceededThings": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.IoTJobTimeoutConfig": { + "additionalProperties": false, + "properties": { + "InProgressTimeoutInMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GreengrassV2::Deployment.SystemResourceLimits": { + "additionalProperties": false, + "properties": { + "Cpus": { + "type": "number" + }, + "Memory": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config": { + "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": { + "ConfigData": { + "$ref": "#/definitions/AWS::GroundStation::Config.ConfigData" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ConfigData", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GroundStation::Config" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GroundStation::Config.AntennaDownlinkConfig": { + "additionalProperties": false, + "properties": { + "SpectrumConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig": { + "additionalProperties": false, + "properties": { + "DecodeConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.DecodeConfig" + }, + "DemodulationConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.DemodulationConfig" + }, + "SpectrumConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.SpectrumConfig" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.AntennaUplinkConfig": { + "additionalProperties": false, + "properties": { + "SpectrumConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.UplinkSpectrumConfig" + }, + "TargetEirp": { + "$ref": "#/definitions/AWS::GroundStation::Config.Eirp" + }, + "TransmitDisabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.ConfigData": { + "additionalProperties": false, + "properties": { + "AntennaDownlinkConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkConfig" + }, + "AntennaDownlinkDemodDecodeConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaDownlinkDemodDecodeConfig" + }, + "AntennaUplinkConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.AntennaUplinkConfig" + }, + "DataflowEndpointConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.DataflowEndpointConfig" + }, + "S3RecordingConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.S3RecordingConfig" + }, + "TrackingConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.TrackingConfig" + }, + "UplinkEchoConfig": { + "$ref": "#/definitions/AWS::GroundStation::Config.UplinkEchoConfig" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.DataflowEndpointConfig": { + "additionalProperties": false, + "properties": { + "DataflowEndpointName": { + "type": "string" + }, + "DataflowEndpointRegion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.DecodeConfig": { + "additionalProperties": false, + "properties": { + "UnvalidatedJSON": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.DemodulationConfig": { + "additionalProperties": false, + "properties": { + "UnvalidatedJSON": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.Eirp": { + "additionalProperties": false, + "properties": { + "Units": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.Frequency": { + "additionalProperties": false, + "properties": { + "Units": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.FrequencyBandwidth": { + "additionalProperties": false, + "properties": { + "Units": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.S3RecordingConfig": { + "additionalProperties": false, + "properties": { + "BucketArn": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.SpectrumConfig": { + "additionalProperties": false, + "properties": { + "Bandwidth": { + "$ref": "#/definitions/AWS::GroundStation::Config.FrequencyBandwidth" + }, + "CenterFrequency": { + "$ref": "#/definitions/AWS::GroundStation::Config.Frequency" + }, + "Polarization": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.TrackingConfig": { + "additionalProperties": false, + "properties": { + "Autotrack": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.UplinkEchoConfig": { + "additionalProperties": false, + "properties": { + "AntennaUplinkConfigArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GroundStation::Config.UplinkSpectrumConfig": { + "additionalProperties": false, + "properties": { + "CenterFrequency": { + "$ref": "#/definitions/AWS::GroundStation::Config.Frequency" + }, + "Polarization": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup": { + "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": { + "EndpointDetails": { + "items": { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.EndpointDetails" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "EndpointDetails" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GroundStation::DataflowEndpointGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SocketAddress" + }, + "Mtu": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup.EndpointDetails": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.DataflowEndpoint" + }, + "SecurityDetails": { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup.SecurityDetails" + } + }, + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup.SecurityDetails": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GroundStation::DataflowEndpointGroup.SocketAddress": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::GroundStation::MissionProfile": { + "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": { + "ContactPostPassDurationSeconds": { + "type": "number" + }, + "ContactPrePassDurationSeconds": { + "type": "number" + }, + "DataflowEdges": { + "items": { + "$ref": "#/definitions/AWS::GroundStation::MissionProfile.DataflowEdge" + }, + "type": "array" + }, + "MinimumViableContactDurationSeconds": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrackingConfigArn": { + "type": "string" + } + }, + "required": [ + "DataflowEdges", + "MinimumViableContactDurationSeconds", + "Name", + "TrackingConfigArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GroundStation::MissionProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GroundStation::MissionProfile.DataflowEdge": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector": { + "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": { + "DataSources": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNDataSourceConfigurations" + }, + "Enable": { + "type": "boolean" + }, + "FindingPublishingFrequency": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Enable" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Detector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNDataSourceConfigurations": { + "additionalProperties": false, + "properties": { + "Kubernetes": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesConfiguration" + }, + "MalwareProtection": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNMalwareProtectionConfiguration" + }, + "S3Logs": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNS3LogsConfiguration" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNKubernetesConfiguration": { + "additionalProperties": false, + "properties": { + "AuditLogs": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNKubernetesAuditLogsConfiguration" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNMalwareProtectionConfiguration": { + "additionalProperties": false, + "properties": { + "ScanEc2InstanceWithFindings": { + "$ref": "#/definitions/AWS::GuardDuty::Detector.CFNScanEc2InstanceWithFindingsConfiguration" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNS3LogsConfiguration": { + "additionalProperties": false, + "properties": { + "Enable": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Detector.CFNScanEc2InstanceWithFindingsConfiguration": { + "additionalProperties": false, + "properties": { + "EbsVolumes": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Filter": { + "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": { + "Action": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DetectorId": { + "type": "string" + }, + "FindingCriteria": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.FindingCriteria" + }, + "Name": { + "type": "string" + }, + "Rank": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Action", + "Description", + "DetectorId", + "FindingCriteria", + "Name", + "Rank" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Filter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GuardDuty::Filter.Condition": { + "additionalProperties": false, + "properties": { + "Eq": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Equals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "GreaterThan": { + "type": "number" + }, + "GreaterThanOrEqual": { + "type": "number" + }, + "Gt": { + "type": "number" + }, + "Gte": { + "type": "number" + }, + "LessThan": { + "type": "number" + }, + "LessThanOrEqual": { + "type": "number" + }, + "Lt": { + "type": "number" + }, + "Lte": { + "type": "number" + }, + "Neq": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NotEquals": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::GuardDuty::Filter.FindingCriteria": { + "additionalProperties": false, + "properties": { + "Criterion": { + "type": "object" + }, + "ItemType": { + "$ref": "#/definitions/AWS::GuardDuty::Filter.Condition" + } + }, + "type": "object" + }, + "AWS::GuardDuty::IPSet": { + "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": { + "Activate": { + "type": "boolean" + }, + "DetectorId": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::IPSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GuardDuty::Master": { + "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": { + "DetectorId": { + "type": "string" + }, + "InvitationId": { + "type": "string" + }, + "MasterId": { + "type": "string" + } + }, + "required": [ + "DetectorId", + "MasterId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Master" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GuardDuty::Member": { + "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": { + "DetectorId": { + "type": "string" + }, + "DisableEmailNotification": { + "type": "boolean" + }, + "Email": { + "type": "string" + }, + "MemberId": { + "type": "string" + }, + "Message": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "DetectorId", + "Email", + "MemberId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::Member" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::GuardDuty::ThreatIntelSet": { + "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": { + "Activate": { + "type": "boolean" + }, + "DetectorId": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "Location": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Activate", + "DetectorId", + "Format", + "Location" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::GuardDuty::ThreatIntelSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore": { + "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": { + "DatastoreName": { + "type": "string" + }, + "DatastoreTypeVersion": { + "type": "string" + }, + "PreloadDataConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.PreloadDataConfig" + }, + "SseConfiguration": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.SseConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatastoreTypeVersion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::HealthLake::FHIRDatastore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.CreatedAt": { + "additionalProperties": false, + "properties": { + "Nanos": { + "type": "number" + }, + "Seconds": { + "type": "string" + } + }, + "required": [ + "Nanos", + "Seconds" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig": { + "additionalProperties": false, + "properties": { + "CmkType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CmkType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.PreloadDataConfig": { + "additionalProperties": false, + "properties": { + "PreloadDataType": { + "type": "string" + } + }, + "required": [ + "PreloadDataType" + ], + "type": "object" + }, + "AWS::HealthLake::FHIRDatastore.SseConfiguration": { + "additionalProperties": false, + "properties": { + "KmsEncryptionConfig": { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore.KmsEncryptionConfig" + } + }, + "required": [ + "KmsEncryptionConfig" + ], + "type": "object" + }, + "AWS::IAM::AccessKey": { + "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": { + "Serial": { + "type": "number" + }, + "Status": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::AccessKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::Group": { + "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": { + "GroupName": { + "type": "string" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Group.Policy" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::Group" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IAM::Group.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "AWS::IAM::InstanceProfile": { + "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": { + "InstanceProfileName": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Roles" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::InstanceProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::ManagedPolicy": { + "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": { + "Description": { + "type": "string" + }, + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ManagedPolicyName": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::ManagedPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::OIDCProvider": { + "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": { + "ClientIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThumbprintList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ThumbprintList" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::OIDCProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::Policy": { + "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": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + }, + "Roles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::Role": { + "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": { + "AssumeRolePolicyDocument": { + "type": "object" + }, + "Description": { + "type": "string" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSessionDuration": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::Role.Policy" + }, + "type": "array" + }, + "RoleName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssumeRolePolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::Role" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::Role.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "AWS::IAM::SAMLProvider": { + "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": { + "Name": { + "type": "string" + }, + "SamlMetadataDocument": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SamlMetadataDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::SAMLProvider" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::ServerCertificate": { + "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": { + "CertificateBody": { + "type": "string" + }, + "CertificateChain": { + "type": "string" + }, + "Path": { + "type": "string" + }, + "PrivateKey": { + "type": "string" + }, + "ServerCertificateName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::ServerCertificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IAM::ServiceLinkedRole": { + "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": { + "AWSServiceName": { + "type": "string" + }, + "CustomSuffix": { + "type": "string" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "AWSServiceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::ServiceLinkedRole" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::User": { + "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": { + "Groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LoginProfile": { + "$ref": "#/definitions/AWS::IAM::User.LoginProfile" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Path": { + "type": "string" + }, + "PermissionsBoundary": { + "type": "string" + }, + "Policies": { + "items": { + "$ref": "#/definitions/AWS::IAM::User.Policy" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IAM::User.LoginProfile": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "PasswordResetRequired": { + "type": "boolean" + } + }, + "required": [ + "Password" + ], + "type": "object" + }, + "AWS::IAM::User.Policy": { + "additionalProperties": false, + "properties": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "AWS::IAM::UserToGroupAddition": { + "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": { + "GroupName": { + "type": "string" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GroupName", + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::UserToGroupAddition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IAM::VirtualMFADevice": { + "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": { + "Path": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Users": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VirtualMfaDeviceName": { + "type": "string" + } + }, + "required": [ + "Users" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IAM::VirtualMFADevice" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVS::Channel": { + "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": { + "Authorized": { + "type": "boolean" + }, + "LatencyMode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RecordingConfigurationArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVS::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IVS::PlaybackKeyPair": { + "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": { + "Name": { + "type": "string" + }, + "PublicKeyMaterial": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVS::PlaybackKeyPair" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IVS::RecordingConfiguration": { + "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::IVS::RecordingConfiguration.DestinationConfiguration" + }, + "Name": { + "type": "string" + }, + "RecordingReconnectWindowSeconds": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThumbnailConfiguration": { + "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.ThumbnailConfiguration" + } + }, + "required": [ + "DestinationConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVS::RecordingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IVS::RecordingConfiguration.DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "S3": { + "$ref": "#/definitions/AWS::IVS::RecordingConfiguration.S3DestinationConfiguration" + } + }, + "required": [ + "S3" + ], + "type": "object" + }, + "AWS::IVS::RecordingConfiguration.S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::IVS::RecordingConfiguration.ThumbnailConfiguration": { + "additionalProperties": false, + "properties": { + "RecordingMode": { + "type": "string" + }, + "TargetIntervalSeconds": { + "type": "number" + } + }, + "required": [ + "RecordingMode" + ], + "type": "object" + }, + "AWS::IVS::StreamKey": { + "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": { + "ChannelArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ChannelArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IVS::StreamKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IdentityStore::Group": { + "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": { + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "IdentityStoreId": { + "type": "string" + } + }, + "required": [ + "DisplayName", + "IdentityStoreId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IdentityStore::Group" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IdentityStore::GroupMembership": { + "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": { + "GroupId": { + "type": "string" + }, + "IdentityStoreId": { + "type": "string" + }, + "MemberId": { + "$ref": "#/definitions/AWS::IdentityStore::GroupMembership.MemberId" + } + }, + "required": [ + "GroupId", + "IdentityStoreId", + "MemberId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IdentityStore::GroupMembership" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IdentityStore::GroupMembership.MemberId": { + "additionalProperties": false, + "properties": { + "UserId": { + "type": "string" + } + }, + "required": [ + "UserId" + ], + "type": "object" + }, + "AWS::ImageBuilder::Component": { + "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": { + "ChangeDescription": { + "type": "string" + }, + "Data": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "SupportedOsVersions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Uri": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Platform", + "Version" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::Component" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe": { + "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": { + "Components": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.ComponentConfiguration" + }, + "type": "array" + }, + "ContainerType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DockerfileTemplateData": { + "type": "string" + }, + "DockerfileTemplateUri": { + "type": "string" + }, + "ImageOsVersionOverride": { + "type": "string" + }, + "InstanceConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParentImage": { + "type": "string" + }, + "PlatformOverride": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "TargetRepository": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository" + }, + "Version": { + "type": "string" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "required": [ + "Components", + "ContainerType", + "Name", + "ParentImage", + "TargetRepository", + "Version" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::ContainerRecipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.ComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ComponentArn": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.ComponentParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.ComponentParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "Throughput": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.EbsInstanceBlockDeviceSpecification" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.InstanceConfiguration": { + "additionalProperties": false, + "properties": { + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe.InstanceBlockDeviceMapping" + }, + "type": "array" + }, + "Image": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ContainerRecipe.TargetContainerRepository": { + "additionalProperties": false, + "properties": { + "RepositoryName": { + "type": "string" + }, + "Service": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration": { + "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": { + "Description": { + "type": "string" + }, + "Distributions": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.Distribution" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Distributions", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::DistributionConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.AmiDistributionConfiguration": { + "additionalProperties": false, + "properties": { + "AmiTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LaunchPermissionConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.LaunchPermissionConfiguration" + }, + "Name": { + "type": "string" + }, + "TargetAccountIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration": { + "additionalProperties": false, + "properties": { + "ContainerTags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "TargetRepository": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.TargetContainerRepository" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.Distribution": { + "additionalProperties": false, + "properties": { + "AmiDistributionConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.AmiDistributionConfiguration" + }, + "ContainerDistributionConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.ContainerDistributionConfiguration" + }, + "FastLaunchConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.FastLaunchConfiguration" + }, + "type": "array" + }, + "LaunchTemplateConfigurations": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration" + }, + "type": "array" + }, + "LicenseConfigurationArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.FastLaunchConfiguration": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "LaunchTemplate": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.FastLaunchLaunchTemplateSpecification" + }, + "MaxParallelLaunches": { + "type": "number" + }, + "SnapshotConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration.FastLaunchSnapshotConfiguration" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.FastLaunchLaunchTemplateSpecification": { + "additionalProperties": false, + "properties": { + "LaunchTemplateId": { + "type": "string" + }, + "LaunchTemplateName": { + "type": "string" + }, + "LaunchTemplateVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.FastLaunchSnapshotConfiguration": { + "additionalProperties": false, + "properties": { + "TargetResourceCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.LaunchPermissionConfiguration": { + "additionalProperties": false, + "properties": { + "OrganizationArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationalUnitArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.LaunchTemplateConfiguration": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "LaunchTemplateId": { + "type": "string" + }, + "SetDefaultVersion": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::DistributionConfiguration.TargetContainerRepository": { + "additionalProperties": false, + "properties": { + "RepositoryName": { + "type": "string" + }, + "Service": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::Image": { + "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": { + "ContainerRecipeArn": { + "type": "string" + }, + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::Image.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "InfrastructureConfigurationArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::Image" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::Image.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline": { + "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": { + "ContainerRecipeArn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DistributionConfigurationArn": { + "type": "string" + }, + "EnhancedImageMetadataEnabled": { + "type": "boolean" + }, + "ImageRecipeArn": { + "type": "string" + }, + "ImageTestsConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration" + }, + "InfrastructureConfigurationArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline.Schedule" + }, + "Status": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "InfrastructureConfigurationArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::ImagePipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.ImageTestsConfiguration": { + "additionalProperties": false, + "properties": { + "ImageTestsEnabled": { + "type": "boolean" + }, + "TimeoutMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImagePipeline.Schedule": { + "additionalProperties": false, + "properties": { + "PipelineExecutionStartCondition": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe": { + "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": { + "AdditionalInstanceConfiguration": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping" + }, + "type": "array" + }, + "Components": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentConfiguration" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ParentImage": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Version": { + "type": "string" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "required": [ + "Components", + "Name", + "ParentImage", + "Version" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::ImageRecipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.AdditionalInstanceConfiguration": { + "additionalProperties": false, + "properties": { + "SystemsManagerAgent": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent" + }, + "UserDataOverride": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.ComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ComponentArn": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.ComponentParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.ComponentParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "SnapshotId": { + "type": "string" + }, + "Throughput": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.InstanceBlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe.EbsInstanceBlockDeviceSpecification" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::ImageRecipe.SystemsManagerAgent": { + "additionalProperties": false, + "properties": { + "UninstallAfterBuild": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::InfrastructureConfiguration": { + "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": { + "Description": { + "type": "string" + }, + "InstanceMetadataOptions": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions" + }, + "InstanceProfileName": { + "type": "string" + }, + "InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "KeyPair": { + "type": "string" + }, + "Logging": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.Logging" + }, + "Name": { + "type": "string" + }, + "ResourceTags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnsTopicArn": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "TerminateInstanceOnFailure": { + "type": "boolean" + } + }, + "required": [ + "InstanceProfileName", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ImageBuilder::InfrastructureConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ImageBuilder::InfrastructureConfiguration.InstanceMetadataOptions": { + "additionalProperties": false, + "properties": { + "HttpPutResponseHopLimit": { + "type": "number" + }, + "HttpTokens": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::InfrastructureConfiguration.Logging": { + "additionalProperties": false, + "properties": { + "S3Logs": { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration.S3Logs" + } + }, + "type": "object" + }, + "AWS::ImageBuilder::InfrastructureConfiguration.S3Logs": { + "additionalProperties": false, + "properties": { + "S3BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Inspector::AssessmentTarget": { + "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": { + "AssessmentTargetName": { + "type": "string" + }, + "ResourceGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Inspector::AssessmentTarget" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Inspector::AssessmentTemplate": { + "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": { + "AssessmentTargetArn": { + "type": "string" + }, + "AssessmentTemplateName": { + "type": "string" + }, + "DurationInSeconds": { + "type": "number" + }, + "RulesPackageArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UserAttributesForFindings": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssessmentTargetArn", + "DurationInSeconds", + "RulesPackageArns" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Inspector::AssessmentTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Inspector::ResourceGroup": { + "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": { + "ResourceGroupTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceGroupTags" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Inspector::ResourceGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::InspectorV2::Filter": { + "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": { + "Description": { + "type": "string" + }, + "FilterAction": { + "type": "string" + }, + "FilterCriteria": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.FilterCriteria" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "FilterAction", + "FilterCriteria", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::InspectorV2::Filter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::InspectorV2::Filter.DateFilter": { + "additionalProperties": false, + "properties": { + "EndInclusive": { + "type": "number" + }, + "StartInclusive": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.FilterCriteria": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "ComponentId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "ComponentType": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "Ec2InstanceImageId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "Ec2InstanceSubnetId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "Ec2InstanceVpcId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "EcrImageArchitecture": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "EcrImageHash": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "EcrImagePushedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "type": "array" + }, + "EcrImageRegistry": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "EcrImageRepositoryName": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "EcrImageTags": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "FindingArn": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "FindingStatus": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "FindingType": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "FirstObservedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "type": "array" + }, + "InspectorScore": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter" + }, + "type": "array" + }, + "LastObservedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "type": "array" + }, + "NetworkProtocol": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "PortRange": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.PortRangeFilter" + }, + "type": "array" + }, + "RelatedVulnerabilities": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "ResourceId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "ResourceTags": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.MapFilter" + }, + "type": "array" + }, + "ResourceType": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "Severity": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "Title": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "UpdatedAt": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.DateFilter" + }, + "type": "array" + }, + "VendorSeverity": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "VulnerabilityId": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "VulnerabilitySource": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "type": "array" + }, + "VulnerablePackages": { + "items": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.PackageFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.MapFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison" + ], + "type": "object" + }, + "AWS::InspectorV2::Filter.NumberFilter": { + "additionalProperties": false, + "properties": { + "LowerInclusive": { + "type": "number" + }, + "UpperInclusive": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.PackageFilter": { + "additionalProperties": false, + "properties": { + "Architecture": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "Epoch": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.NumberFilter" + }, + "Name": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "Release": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "SourceLayerHash": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + }, + "Version": { + "$ref": "#/definitions/AWS::InspectorV2::Filter.StringFilter" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.PortRangeFilter": { + "additionalProperties": false, + "properties": { + "BeginInclusive": { + "type": "number" + }, + "EndInclusive": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::InspectorV2::Filter.StringFilter": { + "additionalProperties": false, + "properties": { + "Comparison": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Comparison", + "Value" + ], + "type": "object" + }, + "AWS::IoT1Click::Device": { + "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": { + "DeviceId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "DeviceId", + "Enabled" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT1Click::Device" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT1Click::Placement": { + "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": { + "AssociatedDevices": { + "type": "object" + }, + "Attributes": { + "type": "object" + }, + "PlacementName": { + "type": "string" + }, + "ProjectName": { + "type": "string" + } + }, + "required": [ + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT1Click::Placement" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT1Click::Project": { + "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": { + "Description": { + "type": "string" + }, + "PlacementTemplate": { + "$ref": "#/definitions/AWS::IoT1Click::Project.PlacementTemplate" + }, + "ProjectName": { + "type": "string" + } + }, + "required": [ + "PlacementTemplate" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT1Click::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT1Click::Project.DeviceTemplate": { + "additionalProperties": false, + "properties": { + "CallbackOverrides": { + "type": "object" + }, + "DeviceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT1Click::Project.PlacementTemplate": { + "additionalProperties": false, + "properties": { + "DefaultAttributes": { + "type": "object" + }, + "DeviceTemplates": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration": { + "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": { + "AccountId": { + "type": "string" + }, + "AuditCheckConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations" + }, + "AuditNotificationTargetConfigurations": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "AuditCheckConfigurations", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::AccountAuditConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditCheckConfigurations": { + "additionalProperties": false, + "properties": { + "AuthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "CaCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "ConflictingClientIdsCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateExpiringCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateKeyQualityCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "DeviceCertificateSharedCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IntermediateCaRevokedForActiveDeviceCertificatesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IoTPolicyPotentialMisConfigurationCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotPolicyOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasAllowsAccessToUnusedServicesCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "IotRoleAliasOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "LoggingDisabledCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedCaCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "RevokedDeviceCertificateStillActiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + }, + "UnauthenticatedCognitoRoleOverlyPermissiveCheck": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditCheckConfiguration" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::AccountAuditConfiguration.AuditNotificationTargetConfigurations": { + "additionalProperties": false, + "properties": { + "Sns": { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration.AuditNotificationTarget" + } + }, + "type": "object" + }, + "AWS::IoT::Authorizer": { + "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": { + "AuthorizerFunctionArn": { + "type": "string" + }, + "AuthorizerName": { + "type": "string" + }, + "EnableCachingForHttp": { + "type": "boolean" + }, + "SigningDisabled": { + "type": "boolean" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TokenKeyName": { + "type": "string" + }, + "TokenSigningPublicKeys": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "AuthorizerFunctionArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Authorizer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::CACertificate": { + "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": { + "AutoRegistrationStatus": { + "type": "string" + }, + "CACertificatePem": { + "type": "string" + }, + "CertificateMode": { + "type": "string" + }, + "RegistrationConfig": { + "$ref": "#/definitions/AWS::IoT::CACertificate.RegistrationConfig" + }, + "RemoveAutoRegistration": { + "type": "boolean" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VerificationCertificatePem": { + "type": "string" + } + }, + "required": [ + "CACertificatePem", + "Status" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::CACertificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::CACertificate.RegistrationConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::Certificate": { + "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": { + "CACertificatePem": { + "type": "string" + }, + "CertificateMode": { + "type": "string" + }, + "CertificatePem": { + "type": "string" + }, + "CertificateSigningRequest": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::CustomMetric": { + "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": { + "DisplayName": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "MetricType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "MetricType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::CustomMetric" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::Dimension": { + "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": { + "Name": { + "type": "string" + }, + "StringValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "StringValues", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Dimension" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::DomainConfiguration": { + "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": { + "AuthorizerConfig": { + "$ref": "#/definitions/AWS::IoT::DomainConfiguration.AuthorizerConfig" + }, + "DomainConfigurationName": { + "type": "string" + }, + "DomainConfigurationStatus": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "ServerCertificateArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServiceType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ValidationCertificateArn": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::DomainConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::DomainConfiguration.AuthorizerConfig": { + "additionalProperties": false, + "properties": { + "AllowAuthorizerOverride": { + "type": "boolean" + }, + "DefaultAuthorizerName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::DomainConfiguration.ServerCertificateSummary": { + "additionalProperties": false, + "properties": { + "ServerCertificateArn": { + "type": "string" + }, + "ServerCertificateStatus": { + "type": "string" + }, + "ServerCertificateStatusDetail": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::FleetMetric": { + "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": { + "AggregationField": { + "type": "string" + }, + "AggregationType": { + "$ref": "#/definitions/AWS::IoT::FleetMetric.AggregationType" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Period": { + "type": "number" + }, + "QueryString": { + "type": "string" + }, + "QueryVersion": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::FleetMetric" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::FleetMetric.AggregationType": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::IoT::JobTemplate": { + "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": { + "AbortConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.AbortConfig" + }, + "Description": { + "type": "string" + }, + "Document": { + "type": "string" + }, + "DocumentSource": { + "type": "string" + }, + "JobArn": { + "type": "string" + }, + "JobExecutionsRetryConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRetryConfig" + }, + "JobExecutionsRolloutConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.JobExecutionsRolloutConfig" + }, + "JobTemplateId": { + "type": "string" + }, + "PresignedUrlConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.PresignedUrlConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeoutConfig": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.TimeoutConfig" + } + }, + "required": [ + "Description", + "JobTemplateId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::JobTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::JobTemplate.AbortConfig": { + "additionalProperties": false, + "properties": { + "CriteriaList": { + "items": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.AbortCriteria" + }, + "type": "array" + } + }, + "required": [ + "CriteriaList" + ], + "type": "object" + }, + "AWS::IoT::JobTemplate.AbortCriteria": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "FailureType": { + "type": "string" + }, + "MinNumberOfExecutedThings": { + "type": "number" + }, + "ThresholdPercentage": { + "type": "number" + } + }, + "required": [ + "Action", + "FailureType", + "MinNumberOfExecutedThings", + "ThresholdPercentage" + ], + "type": "object" + }, + "AWS::IoT::JobTemplate.ExponentialRolloutRate": { + "additionalProperties": false, + "properties": { + "BaseRatePerMinute": { + "type": "number" + }, + "IncrementFactor": { + "type": "number" + }, + "RateIncreaseCriteria": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.RateIncreaseCriteria" + } + }, + "required": [ + "BaseRatePerMinute", + "IncrementFactor", + "RateIncreaseCriteria" + ], + "type": "object" + }, + "AWS::IoT::JobTemplate.JobExecutionsRetryConfig": { + "additionalProperties": false, + "properties": { + "RetryCriteriaList": { + "items": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.RetryCriteria" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::JobTemplate.JobExecutionsRolloutConfig": { + "additionalProperties": false, + "properties": { + "ExponentialRolloutRate": { + "$ref": "#/definitions/AWS::IoT::JobTemplate.ExponentialRolloutRate" + }, + "MaximumPerMinute": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::IoT::JobTemplate.PresignedUrlConfig": { + "additionalProperties": false, + "properties": { + "ExpiresInSec": { + "type": "number" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::JobTemplate.RateIncreaseCriteria": { + "additionalProperties": false, + "properties": { + "NumberOfNotifiedThings": { + "type": "number" + }, + "NumberOfSucceededThings": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::IoT::JobTemplate.RetryCriteria": { + "additionalProperties": false, + "properties": { + "FailureType": { + "type": "string" + }, + "NumberOfRetries": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::IoT::JobTemplate.TimeoutConfig": { + "additionalProperties": false, + "properties": { + "InProgressTimeoutInMinutes": { + "type": "number" + } + }, + "required": [ + "InProgressTimeoutInMinutes" + ], + "type": "object" + }, + "AWS::IoT::Logging": { + "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": { + "AccountId": { + "type": "string" + }, + "DefaultLogLevel": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AccountId", + "DefaultLogLevel", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Logging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction": { + "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": { + "ActionName": { + "type": "string" + }, + "ActionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ActionParams" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ActionParams", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::MitigationAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ActionParams": { + "additionalProperties": false, + "properties": { + "AddThingsToThingGroupParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.AddThingsToThingGroupParams" + }, + "EnableIoTLoggingParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.EnableIoTLoggingParams" + }, + "PublishFindingToSnsParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.PublishFindingToSnsParams" + }, + "ReplaceDefaultPolicyVersionParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams" + }, + "UpdateCACertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateCACertificateParams" + }, + "UpdateDeviceCertificateParams": { + "$ref": "#/definitions/AWS::IoT::MitigationAction.UpdateDeviceCertificateParams" + } + }, + "type": "object" + }, + "AWS::IoT::MitigationAction.AddThingsToThingGroupParams": { + "additionalProperties": false, + "properties": { + "OverrideDynamicGroups": { + "type": "boolean" + }, + "ThingGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ThingGroupNames" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.EnableIoTLoggingParams": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "RoleArnForLogging": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "RoleArnForLogging" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.PublishFindingToSnsParams": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.ReplaceDefaultPolicyVersionParams": { + "additionalProperties": false, + "properties": { + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateCACertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::MitigationAction.UpdateDeviceCertificateParams": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::IoT::Policy": { + "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": { + "PolicyDocument": { + "type": "object" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::PolicyPrincipalAttachment": { + "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": { + "PolicyName": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "PolicyName", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::PolicyPrincipalAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::ProvisioningTemplate": { + "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": { + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PreProvisioningHook": { + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate.ProvisioningHook" + }, + "ProvisioningRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateBody": { + "type": "string" + }, + "TemplateName": { + "type": "string" + }, + "TemplateType": { + "type": "string" + } + }, + "required": [ + "ProvisioningRoleArn", + "TemplateBody" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ProvisioningTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::ProvisioningTemplate.ProvisioningHook": { + "additionalProperties": false, + "properties": { + "PayloadVersion": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::ResourceSpecificLogging": { + "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": { + "LogLevel": { + "type": "string" + }, + "TargetName": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "LogLevel", + "TargetName", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ResourceSpecificLogging" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::RoleAlias": { + "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": { + "CredentialDurationSeconds": { + "type": "number" + }, + "RoleAlias": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::RoleAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::ScheduledAudit": { + "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": { + "DayOfMonth": { + "type": "string" + }, + "DayOfWeek": { + "type": "string" + }, + "Frequency": { + "type": "string" + }, + "ScheduledAuditName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetCheckNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Frequency", + "TargetCheckNames" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ScheduledAudit" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile": { + "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": { + "AdditionalMetricsToRetainV2": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricToRetain" + }, + "type": "array" + }, + "AlertTargets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.AlertTarget" + } + }, + "type": "object" + }, + "Behaviors": { + "items": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.Behavior" + }, + "type": "array" + }, + "SecurityProfileDescription": { + "type": "string" + }, + "SecurityProfileName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::SecurityProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.AlertTarget": { + "additionalProperties": false, + "properties": { + "AlertTargetArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "AlertTargetArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.Behavior": { + "additionalProperties": false, + "properties": { + "Criteria": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.BehaviorCriteria" + }, + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + }, + "Name": { + "type": "string" + }, + "SuppressAlerts": { + "type": "boolean" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.BehaviorCriteria": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "ConsecutiveDatapointsToAlarm": { + "type": "number" + }, + "ConsecutiveDatapointsToClear": { + "type": "number" + }, + "DurationSeconds": { + "type": "number" + }, + "MlDetectionConfig": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MachineLearningDetectionConfig" + }, + "StatisticalThreshold": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.StatisticalThreshold" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricValue" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MachineLearningDetectionConfig": { + "additionalProperties": false, + "properties": { + "ConfidenceLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricDimension": { + "additionalProperties": false, + "properties": { + "DimensionName": { + "type": "string" + }, + "Operator": { + "type": "string" + } + }, + "required": [ + "DimensionName" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricToRetain": { + "additionalProperties": false, + "properties": { + "Metric": { + "type": "string" + }, + "MetricDimension": { + "$ref": "#/definitions/AWS::IoT::SecurityProfile.MetricDimension" + } + }, + "required": [ + "Metric" + ], + "type": "object" + }, + "AWS::IoT::SecurityProfile.MetricValue": { + "additionalProperties": false, + "properties": { + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Count": { + "type": "string" + }, + "Number": { + "type": "number" + }, + "Numbers": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Ports": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Strings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::SecurityProfile.StatisticalThreshold": { + "additionalProperties": false, + "properties": { + "Statistic": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::Thing": { + "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": { + "AttributePayload": { + "$ref": "#/definitions/AWS::IoT::Thing.AttributePayload" + }, + "ThingName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::Thing" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::Thing.AttributePayload": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoT::ThingPrincipalAttachment": { + "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": { + "Principal": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "required": [ + "Principal", + "ThingName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::ThingPrincipalAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::TopicRule": { + "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": { + "RuleName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TopicRulePayload": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TopicRulePayload" + } + }, + "required": [ + "TopicRulePayload" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::TopicRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.Action": { + "additionalProperties": false, + "properties": { + "CloudwatchAlarm": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchAlarmAction" + }, + "CloudwatchLogs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchLogsAction" + }, + "CloudwatchMetric": { + "$ref": "#/definitions/AWS::IoT::TopicRule.CloudwatchMetricAction" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBAction" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoT::TopicRule.DynamoDBv2Action" + }, + "Elasticsearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.ElasticsearchAction" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoT::TopicRule.FirehoseAction" + }, + "Http": { + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAction" + }, + "IotAnalytics": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotAnalyticsAction" + }, + "IotEvents": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotEventsAction" + }, + "IotSiteWise": { + "$ref": "#/definitions/AWS::IoT::TopicRule.IotSiteWiseAction" + }, + "Kafka": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KafkaAction" + }, + "Kinesis": { + "$ref": "#/definitions/AWS::IoT::TopicRule.KinesisAction" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LambdaAction" + }, + "Location": { + "$ref": "#/definitions/AWS::IoT::TopicRule.LocationAction" + }, + "OpenSearch": { + "$ref": "#/definitions/AWS::IoT::TopicRule.OpenSearchAction" + }, + "Republish": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishAction" + }, + "S3": { + "$ref": "#/definitions/AWS::IoT::TopicRule.S3Action" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SnsAction" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SqsAction" + }, + "StepFunctions": { + "$ref": "#/definitions/AWS::IoT::TopicRule.StepFunctionsAction" + }, + "Timestream": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamAction" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyVariant" + } + }, + "required": [ + "Timestamp", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchAlarmAction": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateReason": { + "type": "string" + }, + "StateValue": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "RoleArn", + "StateReason", + "StateValue" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchLogsAction": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "LogGroupName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.CloudwatchMetricAction": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricTimestamp": { + "type": "string" + }, + "MetricUnit": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricNamespace", + "MetricUnit", + "MetricValue", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBAction": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.DynamoDBv2Action": { + "additionalProperties": false, + "properties": { + "PutItem": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutItemInput" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.ElasticsearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.FirehoseAction": { + "additionalProperties": false, + "properties": { + "BatchMode": { + "type": "boolean" + }, + "DeliveryStreamName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.HttpAction": { + "additionalProperties": false, + "properties": { + "Auth": { + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpAuthorization" + }, + "ConfirmationUrl": { + "type": "string" + }, + "Headers": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.HttpActionHeader" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.HttpActionHeader": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.HttpAuthorization": { + "additionalProperties": false, + "properties": { + "Sigv4": { + "$ref": "#/definitions/AWS::IoT::TopicRule.SigV4Authorization" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.IotAnalyticsAction": { + "additionalProperties": false, + "properties": { + "BatchMode": { + "type": "boolean" + }, + "ChannelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotEventsAction": { + "additionalProperties": false, + "properties": { + "BatchMode": { + "type": "boolean" + }, + "InputName": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.IotSiteWiseAction": { + "additionalProperties": false, + "properties": { + "PutAssetPropertyValueEntries": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.PutAssetPropertyValueEntry" + }, + "type": "array" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "PutAssetPropertyValueEntries", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KafkaAction": { + "additionalProperties": false, + "properties": { + "ClientProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DestinationArn": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Partition": { + "type": "string" + }, + "Topic": { + "type": "string" + } + }, + "required": [ + "ClientProperties", + "DestinationArn", + "Topic" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.KinesisAction": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StreamName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.LocationAction": { + "additionalProperties": false, + "properties": { + "DeviceId": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Timestamp" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "Latitude", + "Longitude", + "RoleArn", + "TrackerName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.OpenSearchAction": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Index": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Id", + "Index", + "RoleArn", + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.PutAssetPropertyValueEntry": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValues": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.AssetPropertyValue" + }, + "type": "array" + } + }, + "required": [ + "PropertyValues" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.PutItemInput": { + "additionalProperties": false, + "properties": { + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.RepublishAction": { + "additionalProperties": false, + "properties": { + "Headers": { + "$ref": "#/definitions/AWS::IoT::TopicRule.RepublishActionHeaders" + }, + "Qos": { + "type": "number" + }, + "RoleArn": { + "type": "string" + }, + "Topic": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "Topic" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.RepublishActionHeaders": { + "additionalProperties": false, + "properties": { + "ContentType": { + "type": "string" + }, + "CorrelationData": { + "type": "string" + }, + "MessageExpiry": { + "type": "string" + }, + "PayloadFormatIndicator": { + "type": "string" + }, + "ResponseTopic": { + "type": "string" + }, + "UserProperties": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.UserProperty" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRule.S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "CannedAcl": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "BucketName", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SigV4Authorization": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "SigningRegion": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "ServiceName", + "SigningRegion" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SnsAction": { + "additionalProperties": false, + "properties": { + "MessageFormat": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "TargetArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.SqsAction": { + "additionalProperties": false, + "properties": { + "QueueUrl": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.StepFunctionsAction": { + "additionalProperties": false, + "properties": { + "ExecutionNamePrefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StateMachineName": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "StateMachineName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.Timestamp": { + "additionalProperties": false, + "properties": { + "Unit": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamAction": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "type": "string" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamDimension" + }, + "type": "array" + }, + "RoleArn": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoT::TopicRule.TimestreamTimestamp" + } + }, + "required": [ + "DatabaseName", + "Dimensions", + "RoleArn", + "TableName" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamDimension": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TimestreamTimestamp": { + "additionalProperties": false, + "properties": { + "Unit": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Unit", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.TopicRulePayload": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "type": "array" + }, + "AwsIotSqlVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ErrorAction": { + "$ref": "#/definitions/AWS::IoT::TopicRule.Action" + }, + "RuleDisabled": { + "type": "boolean" + }, + "Sql": { + "type": "string" + } + }, + "required": [ + "Actions", + "Sql" + ], + "type": "object" + }, + "AWS::IoT::TopicRule.UserProperty": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::IoT::TopicRuleDestination": { + "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": { + "HttpUrlProperties": { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary" + }, + "Status": { + "type": "string" + }, + "VpcProperties": { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination.VpcDestinationProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoT::TopicRuleDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoT::TopicRuleDestination.HttpUrlDestinationSummary": { + "additionalProperties": false, + "properties": { + "ConfirmationUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoT::TopicRuleDestination.VpcDestinationProperties": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Channel": { + "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": { + "ChannelName": { + "type": "string" + }, + "ChannelStorage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.ChannelStorage" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.RetentionPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTAnalytics::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Channel.ChannelStorage": { + "additionalProperties": false, + "properties": { + "CustomerManagedS3": { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel.CustomerManagedS3" + }, + "ServiceManagedS3": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Channel.CustomerManagedS3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "KeyPrefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Channel.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset": { + "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": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Action" + }, + "type": "array" + }, + "ContentDeliveryRules": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule" + }, + "type": "array" + }, + "DatasetName": { + "type": "string" + }, + "LateDataRules": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRule" + }, + "type": "array" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.RetentionPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Triggers": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Trigger" + }, + "type": "array" + }, + "VersioningConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.VersioningConfiguration" + } + }, + "required": [ + "Actions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTAnalytics::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Action": { + "additionalProperties": false, + "properties": { + "ActionName": { + "type": "string" + }, + "ContainerAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ContainerAction" + }, + "QueryAction": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.QueryAction" + } + }, + "required": [ + "ActionName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ContainerAction": { + "additionalProperties": false, + "properties": { + "ExecutionRoleArn": { + "type": "string" + }, + "Image": { + "type": "string" + }, + "ResourceConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.ResourceConfiguration" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Variable" + }, + "type": "array" + } + }, + "required": [ + "ExecutionRoleArn", + "Image", + "ResourceConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRule": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination" + }, + "EntryName": { + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentDeliveryRuleDestination": { + "additionalProperties": false, + "properties": { + "IotEventsDestinationConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.S3DestinationConfiguration" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DatasetContentVersionValue": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" + } + }, + "required": [ + "DatasetName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTime": { + "additionalProperties": false, + "properties": { + "OffsetSeconds": { + "type": "number" + }, + "TimeExpression": { + "type": "string" + } + }, + "required": [ + "OffsetSeconds", + "TimeExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration": { + "additionalProperties": false, + "properties": { + "TimeoutInMinutes": { + "type": "number" + } + }, + "required": [ + "TimeoutInMinutes" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Filter": { + "additionalProperties": false, + "properties": { + "DeltaTime": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTime" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.GlueConfiguration": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "DatabaseName", + "TableName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.IotEventsDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "InputName", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.LateDataRule": { + "additionalProperties": false, + "properties": { + "RuleConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration" + }, + "RuleName": { + "type": "string" + } + }, + "required": [ + "RuleConfiguration" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.LateDataRuleConfiguration": { + "additionalProperties": false, + "properties": { + "DeltaTimeSessionWindowConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DeltaTimeSessionWindowConfiguration" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.OutputFileUriValue": { + "additionalProperties": false, + "properties": { + "FileName": { + "type": "string" + } + }, + "required": [ + "FileName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.QueryAction": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Filter" + }, + "type": "array" + }, + "SqlQuery": { + "type": "string" + } + }, + "required": [ + "SqlQuery" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.ResourceConfiguration": { + "additionalProperties": false, + "properties": { + "ComputeType": { + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "ComputeType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "GlueConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.GlueConfiguration" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Schedule": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Trigger": { + "additionalProperties": false, + "properties": { + "Schedule": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.Schedule" + }, + "TriggeringDataset": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.TriggeringDataset" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.TriggeringDataset": { + "additionalProperties": false, + "properties": { + "DatasetName": { + "type": "string" + } + }, + "required": [ + "DatasetName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.Variable": { + "additionalProperties": false, + "properties": { + "DatasetContentVersionValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.DatasetContentVersionValue" + }, + "DoubleValue": { + "type": "number" + }, + "OutputFileUriValue": { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset.OutputFileUriValue" + }, + "StringValue": { + "type": "string" + }, + "VariableName": { + "type": "string" + } + }, + "required": [ + "VariableName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Dataset.VersioningConfiguration": { + "additionalProperties": false, + "properties": { + "MaxVersions": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore": { + "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": { + "DatastoreName": { + "type": "string" + }, + "DatastorePartitions": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartitions" + }, + "DatastoreStorage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastoreStorage" + }, + "FileFormatConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.FileFormatConfiguration" + }, + "RetentionPeriod": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.RetentionPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTAnalytics::Datastore" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.Column": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.CustomerManagedS3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "KeyPrefix": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Bucket", + "RoleArn" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "KeyPrefix": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.DatastorePartition": { + "additionalProperties": false, + "properties": { + "Partition": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Partition" + }, + "TimestampPartition": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.TimestampPartition" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.DatastorePartitions": { + "additionalProperties": false, + "properties": { + "Partitions": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.DatastorePartition" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.DatastoreStorage": { + "additionalProperties": false, + "properties": { + "CustomerManagedS3": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3" + }, + "IotSiteWiseMultiLayerStorage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage" + }, + "ServiceManagedS3": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.FileFormatConfiguration": { + "additionalProperties": false, + "properties": { + "JsonConfiguration": { + "type": "object" + }, + "ParquetConfiguration": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.ParquetConfiguration" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.IotSiteWiseMultiLayerStorage": { + "additionalProperties": false, + "properties": { + "CustomerManagedS3Storage": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.CustomerManagedS3Storage" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.ParquetConfiguration": { + "additionalProperties": false, + "properties": { + "SchemaDefinition": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.SchemaDefinition" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.Partition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + } + }, + "required": [ + "AttributeName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.RetentionPeriod": { + "additionalProperties": false, + "properties": { + "NumberOfDays": { + "type": "number" + }, + "Unlimited": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.SchemaDefinition": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore.Column" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Datastore.TimestampPartition": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "TimestampFormat": { + "type": "string" + } + }, + "required": [ + "AttributeName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline": { + "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": { + "PipelineActivities": { + "items": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Activity" + }, + "type": "array" + }, + "PipelineName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PipelineActivities" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTAnalytics::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Activity": { + "additionalProperties": false, + "properties": { + "AddAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.AddAttributes" + }, + "Channel": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Channel" + }, + "Datastore": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Datastore" + }, + "DeviceRegistryEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich" + }, + "DeviceShadowEnrich": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich" + }, + "Filter": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Filter" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Lambda" + }, + "Math": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.Math" + }, + "RemoveAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.RemoveAttributes" + }, + "SelectAttributes": { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline.SelectAttributes" + } + }, + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.AddAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Channel": { + "additionalProperties": false, + "properties": { + "ChannelName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "required": [ + "ChannelName", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Datastore": { + "additionalProperties": false, + "properties": { + "DatastoreName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "DatastoreName", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceRegistryEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "required": [ + "Attribute", + "Name", + "RoleArn", + "ThingName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.DeviceShadowEnrich": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "required": [ + "Attribute", + "Name", + "RoleArn", + "ThingName" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Filter": { + "additionalProperties": false, + "properties": { + "Filter": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "required": [ + "Filter", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Lambda": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "LambdaName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "required": [ + "BatchSize", + "LambdaName", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.Math": { + "additionalProperties": false, + "properties": { + "Attribute": { + "type": "string" + }, + "Math": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "required": [ + "Attribute", + "Math", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.RemoveAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Name" + ], + "type": "object" + }, + "AWS::IoTAnalytics::Pipeline.SelectAttributes": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Next": { + "type": "string" + } + }, + "required": [ + "Attributes", + "Name" + ], + "type": "object" + }, + "AWS::IoTCoreDeviceAdvisor::SuiteDefinition": { + "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": { + "SuiteDefinitionConfiguration": { + "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition.SuiteDefinitionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SuiteDefinitionConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTCoreDeviceAdvisor::SuiteDefinition.DeviceUnderTest": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "ThingArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTCoreDeviceAdvisor::SuiteDefinition.SuiteDefinitionConfiguration": { + "additionalProperties": false, + "properties": { + "DevicePermissionRoleArn": { + "type": "string" + }, + "Devices": { + "items": { + "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition.DeviceUnderTest" + }, + "type": "array" + }, + "IntendedForQualification": { + "type": "boolean" + }, + "RootGroup": { + "type": "string" + }, + "SuiteDefinitionName": { + "type": "string" + } + }, + "required": [ + "DevicePermissionRoleArn", + "RootGroup" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel": { + "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": { + "AlarmCapabilities": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmCapabilities" + }, + "AlarmEventActions": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmEventActions" + }, + "AlarmModelDescription": { + "type": "string" + }, + "AlarmModelName": { + "type": "string" + }, + "AlarmRule": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmRule" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Severity": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AlarmRule", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTEvents::AlarmModel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AcknowledgeFlow": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AlarmAction": { + "additionalProperties": false, + "properties": { + "DynamoDB": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.DynamoDBv2" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Firehose" + }, + "IotEvents": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.IotSiteWise" + }, + "IotTopicPublish": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.IotTopicPublish" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Lambda" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Sns" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Sqs" + } + }, + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AlarmCapabilities": { + "additionalProperties": false, + "properties": { + "AcknowledgeFlow": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AcknowledgeFlow" + }, + "InitializationConfiguration": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.InitializationConfiguration" + } + }, + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AlarmEventActions": { + "additionalProperties": false, + "properties": { + "AlarmActions": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AlarmAction" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AlarmRule": { + "additionalProperties": false, + "properties": { + "SimpleRule": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.SimpleRule" + } + }, + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AssetPropertyVariant" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.DynamoDB": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "Operation": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "TableName" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.DynamoDBv2": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.InitializationConfiguration": { + "additionalProperties": false, + "properties": { + "DisabledOnInitialization": { + "type": "boolean" + } + }, + "required": [ + "DisabledOnInitialization" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.IotEvents": { + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + } + }, + "required": [ + "InputName" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.IotSiteWise": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValue": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.AssetPropertyValue" + } + }, + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.IotTopicPublish": { + "additionalProperties": false, + "properties": { + "MqttTopic": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + } + }, + "required": [ + "MqttTopic" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.Lambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.Payload": { + "additionalProperties": false, + "properties": { + "ContentExpression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ContentExpression", + "Type" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.SimpleRule": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "InputProperty": { + "type": "string" + }, + "Threshold": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "InputProperty", + "Threshold" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.Sns": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "AWS::IoTEvents::AlarmModel.Sqs": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel.Payload" + }, + "QueueUrl": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel": { + "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": { + "DetectorModelDefinition": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DetectorModelDefinition" + }, + "DetectorModelDescription": { + "type": "string" + }, + "DetectorModelName": { + "type": "string" + }, + "EvaluationMethod": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DetectorModelDefinition", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTEvents::DetectorModel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Action": { + "additionalProperties": false, + "properties": { + "ClearTimer": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ClearTimer" + }, + "DynamoDB": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDB" + }, + "DynamoDBv2": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.DynamoDBv2" + }, + "Firehose": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Firehose" + }, + "IotEvents": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotEvents" + }, + "IotSiteWise": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotSiteWise" + }, + "IotTopicPublish": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.IotTopicPublish" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Lambda" + }, + "ResetTimer": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.ResetTimer" + }, + "SetTimer": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetTimer" + }, + "SetVariable": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.SetVariable" + }, + "Sns": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sns" + }, + "Sqs": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Sqs" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp": { + "additionalProperties": false, + "properties": { + "OffsetInNanos": { + "type": "string" + }, + "TimeInSeconds": { + "type": "string" + } + }, + "required": [ + "TimeInSeconds" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.AssetPropertyValue": { + "additionalProperties": false, + "properties": { + "Quality": { + "type": "string" + }, + "Timestamp": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyTimestamp" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyVariant" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.AssetPropertyVariant": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "string" + }, + "DoubleValue": { + "type": "string" + }, + "IntegerValue": { + "type": "string" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.ClearTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.DetectorModelDefinition": { + "additionalProperties": false, + "properties": { + "InitialStateName": { + "type": "string" + }, + "States": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.State" + }, + "type": "array" + } + }, + "required": [ + "InitialStateName", + "States" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.DynamoDB": { + "additionalProperties": false, + "properties": { + "HashKeyField": { + "type": "string" + }, + "HashKeyType": { + "type": "string" + }, + "HashKeyValue": { + "type": "string" + }, + "Operation": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + }, + "PayloadField": { + "type": "string" + }, + "RangeKeyField": { + "type": "string" + }, + "RangeKeyType": { + "type": "string" + }, + "RangeKeyValue": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "HashKeyField", + "HashKeyValue", + "TableName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.DynamoDBv2": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "TableName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Event": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action" + }, + "type": "array" + }, + "Condition": { + "type": "string" + }, + "EventName": { + "type": "string" + } + }, + "required": [ + "EventName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStreamName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + }, + "Separator": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.IotEvents": { + "additionalProperties": false, + "properties": { + "InputName": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + } + }, + "required": [ + "InputName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.IotSiteWise": { + "additionalProperties": false, + "properties": { + "AssetId": { + "type": "string" + }, + "EntryId": { + "type": "string" + }, + "PropertyAlias": { + "type": "string" + }, + "PropertyId": { + "type": "string" + }, + "PropertyValue": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.AssetPropertyValue" + } + }, + "required": [ + "PropertyValue" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.IotTopicPublish": { + "additionalProperties": false, + "properties": { + "MqttTopic": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + } + }, + "required": [ + "MqttTopic" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Lambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + }, + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.OnEnter": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.OnExit": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.OnInput": { + "additionalProperties": false, + "properties": { + "Events": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Event" + }, + "type": "array" + }, + "TransitionEvents": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.TransitionEvent" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Payload": { + "additionalProperties": false, + "properties": { + "ContentExpression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "ContentExpression", + "Type" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.ResetTimer": { + "additionalProperties": false, + "properties": { + "TimerName": { + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.SetTimer": { + "additionalProperties": false, + "properties": { + "DurationExpression": { + "type": "string" + }, + "Seconds": { + "type": "number" + }, + "TimerName": { + "type": "string" + } + }, + "required": [ + "TimerName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.SetVariable": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + }, + "VariableName": { + "type": "string" + } + }, + "required": [ + "Value", + "VariableName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Sns": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "TargetArn" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.Sqs": { + "additionalProperties": false, + "properties": { + "Payload": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Payload" + }, + "QueueUrl": { + "type": "string" + }, + "UseBase64": { + "type": "boolean" + } + }, + "required": [ + "QueueUrl" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.State": { + "additionalProperties": false, + "properties": { + "OnEnter": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnEnter" + }, + "OnExit": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnExit" + }, + "OnInput": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.OnInput" + }, + "StateName": { + "type": "string" + } + }, + "required": [ + "StateName" + ], + "type": "object" + }, + "AWS::IoTEvents::DetectorModel.TransitionEvent": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel.Action" + }, + "type": "array" + }, + "Condition": { + "type": "string" + }, + "EventName": { + "type": "string" + }, + "NextState": { + "type": "string" + } + }, + "required": [ + "Condition", + "EventName", + "NextState" + ], + "type": "object" + }, + "AWS::IoTEvents::Input": { + "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": { + "InputDefinition": { + "$ref": "#/definitions/AWS::IoTEvents::Input.InputDefinition" + }, + "InputDescription": { + "type": "string" + }, + "InputName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InputDefinition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTEvents::Input" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTEvents::Input.Attribute": { + "additionalProperties": false, + "properties": { + "JsonPath": { + "type": "string" + } + }, + "required": [ + "JsonPath" + ], + "type": "object" + }, + "AWS::IoTEvents::Input.InputDefinition": { + "additionalProperties": false, + "properties": { + "Attributes": { + "items": { + "$ref": "#/definitions/AWS::IoTEvents::Input.Attribute" + }, + "type": "array" + } + }, + "required": [ + "Attributes" + ], + "type": "object" + }, + "AWS::IoTFleetHub::Application": { + "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": { + "ApplicationDescription": { + "type": "string" + }, + "ApplicationName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ApplicationName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTFleetHub::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTFleetWise::Campaign": { + "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": { + "Action": { + "type": "string" + }, + "CollectionScheme": { + "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.CollectionScheme" + }, + "Compression": { + "type": "string" + }, + "DataExtraDimensions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "DiagnosticsMode": { + "type": "string" + }, + "ExpiryTime": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PostTriggerCollectionDuration": { + "type": "number" + }, + "Priority": { + "type": "number" + }, + "SignalCatalogArn": { + "type": "string" + }, + "SignalsToCollect": { + "items": { + "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.SignalInformation" + }, + "type": "array" + }, + "SpoolingMode": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "Action", + "CollectionScheme", + "Name", + "SignalCatalogArn", + "TargetArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTFleetWise::Campaign" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTFleetWise::Campaign.CollectionScheme": { + "additionalProperties": false, + "properties": { + "ConditionBasedCollectionScheme": { + "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.ConditionBasedCollectionScheme" + }, + "TimeBasedCollectionScheme": { + "$ref": "#/definitions/AWS::IoTFleetWise::Campaign.TimeBasedCollectionScheme" + } + }, + "type": "object" + }, + "AWS::IoTFleetWise::Campaign.ConditionBasedCollectionScheme": { + "additionalProperties": false, + "properties": { + "ConditionLanguageVersion": { + "type": "number" + }, + "Expression": { + "type": "string" + }, + "MinimumTriggerIntervalMs": { + "type": "number" + }, + "TriggerMode": { + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "AWS::IoTFleetWise::Campaign.SignalInformation": { + "additionalProperties": false, + "properties": { + "MaxSampleCount": { + "type": "number" + }, + "MinimumSamplingIntervalMs": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoTFleetWise::Campaign.TimeBasedCollectionScheme": { + "additionalProperties": false, + "properties": { + "PeriodMs": { + "type": "number" + } + }, + "required": [ + "PeriodMs" + ], + "type": "object" + }, + "AWS::IoTFleetWise::DecoderManifest": { + "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": { + "Description": { + "type": "string" + }, + "ModelManifestArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.NetworkInterfacesItems" + }, + "type": "array" + }, + "SignalDecoders": { + "items": { + "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.SignalDecodersItems" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ModelManifestArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTFleetWise::DecoderManifest" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTFleetWise::DecoderManifest.CanInterface": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ProtocolName": { + "type": "string" + }, + "ProtocolVersion": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::IoTFleetWise::DecoderManifest.CanSignal": { + "additionalProperties": false, + "properties": { + "Factor": { + "type": "string" + }, + "IsBigEndian": { + "type": "string" + }, + "IsSigned": { + "type": "string" + }, + "Length": { + "type": "string" + }, + "MessageId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Offset": { + "type": "string" + }, + "StartBit": { + "type": "string" + } + }, + "required": [ + "Factor", + "IsBigEndian", + "IsSigned", + "Length", + "MessageId", + "Offset", + "StartBit" + ], + "type": "object" + }, + "AWS::IoTFleetWise::DecoderManifest.NetworkInterfacesItems": { + "additionalProperties": false, + "properties": { + "CanInterface": { + "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.CanInterface" + }, + "InterfaceId": { + "type": "string" + }, + "ObdInterface": { + "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.ObdInterface" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "InterfaceId", + "Type" + ], + "type": "object" + }, + "AWS::IoTFleetWise::DecoderManifest.ObdInterface": { + "additionalProperties": false, + "properties": { + "DtcRequestIntervalSeconds": { + "type": "string" + }, + "HasTransmissionEcu": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ObdStandard": { + "type": "string" + }, + "PidRequestIntervalSeconds": { + "type": "string" + }, + "RequestMessageId": { + "type": "string" + }, + "UseExtendedIds": { + "type": "string" + } + }, + "required": [ + "Name", + "RequestMessageId" + ], + "type": "object" + }, + "AWS::IoTFleetWise::DecoderManifest.ObdSignal": { + "additionalProperties": false, + "properties": { + "BitMaskLength": { + "type": "string" + }, + "BitRightShift": { + "type": "string" + }, + "ByteLength": { + "type": "string" + }, + "Offset": { + "type": "string" + }, + "Pid": { + "type": "string" + }, + "PidResponseLength": { + "type": "string" + }, + "Scaling": { + "type": "string" + }, + "ServiceMode": { + "type": "string" + }, + "StartByte": { + "type": "string" + } + }, + "required": [ + "ByteLength", + "Offset", + "Pid", + "PidResponseLength", + "Scaling", + "ServiceMode", + "StartByte" + ], + "type": "object" + }, + "AWS::IoTFleetWise::DecoderManifest.SignalDecodersItems": { + "additionalProperties": false, + "properties": { + "CanSignal": { + "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.CanSignal" + }, + "FullyQualifiedName": { + "type": "string" + }, + "InterfaceId": { + "type": "string" + }, + "ObdSignal": { + "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest.ObdSignal" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "FullyQualifiedName", + "InterfaceId", + "Type" + ], + "type": "object" + }, + "AWS::IoTFleetWise::Fleet": { + "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": { + "Description": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "SignalCatalogArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id", + "SignalCatalogArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTFleetWise::Fleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTFleetWise::ModelManifest": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Nodes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SignalCatalogArn": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "SignalCatalogArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTFleetWise::ModelManifest" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTFleetWise::SignalCatalog": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NodeCounts": { + "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.NodeCounts" + }, + "Nodes": { + "items": { + "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Node" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTFleetWise::SignalCatalog" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoTFleetWise::SignalCatalog.Actuator": { + "additionalProperties": false, + "properties": { + "AllowedValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AssignedValue": { + "type": "string" + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FullyQualifiedName": { + "type": "string" + }, + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "FullyQualifiedName" + ], + "type": "object" + }, + "AWS::IoTFleetWise::SignalCatalog.Attribute": { + "additionalProperties": false, + "properties": { + "AllowedValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AssignedValue": { + "type": "string" + }, + "DataType": { + "type": "string" + }, + "DefaultValue": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FullyQualifiedName": { + "type": "string" + }, + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "FullyQualifiedName" + ], + "type": "object" + }, + "AWS::IoTFleetWise::SignalCatalog.Branch": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "FullyQualifiedName": { + "type": "string" + } + }, + "required": [ + "FullyQualifiedName" + ], + "type": "object" + }, + "AWS::IoTFleetWise::SignalCatalog.Node": { + "additionalProperties": false, + "properties": { + "Actuator": { + "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Actuator" + }, + "Attribute": { + "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Attribute" + }, + "Branch": { + "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Branch" + }, + "Sensor": { + "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog.Sensor" + } + }, + "type": "object" + }, + "AWS::IoTFleetWise::SignalCatalog.NodeCounts": { + "additionalProperties": false, + "properties": { + "TotalActuators": { + "type": "number" + }, + "TotalAttributes": { + "type": "number" + }, + "TotalBranches": { + "type": "number" + }, + "TotalNodes": { + "type": "number" + }, + "TotalSensors": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::IoTFleetWise::SignalCatalog.Sensor": { + "additionalProperties": false, + "properties": { + "AllowedValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FullyQualifiedName": { + "type": "string" + }, + "Max": { + "type": "number" + }, + "Min": { + "type": "number" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "FullyQualifiedName" + ], + "type": "object" + }, + "AWS::IoTFleetWise::Vehicle": { + "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": { + "AssociationBehavior": { + "type": "string" + }, + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DecoderManifestArn": { + "type": "string" + }, + "ModelManifestArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DecoderManifestArn", + "ModelManifestArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTFleetWise::Vehicle" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy": { + "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": { + "AccessPolicyIdentity": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity" + }, + "AccessPolicyPermission": { + "type": "string" + }, + "AccessPolicyResource": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource" + } + }, + "required": [ + "AccessPolicyIdentity", + "AccessPolicyPermission", + "AccessPolicyResource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::AccessPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.AccessPolicyIdentity": { + "additionalProperties": false, + "properties": { + "IamRole": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamRole" + }, + "IamUser": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.IamUser" + }, + "User": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.User" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.AccessPolicyResource": { + "additionalProperties": false, + "properties": { + "Portal": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Portal" + }, + "Project": { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy.Project" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamRole": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.IamUser": { + "additionalProperties": false, + "properties": { + "arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.Portal": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.Project": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AccessPolicy.User": { + "additionalProperties": false, + "properties": { + "id": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::Asset": { + "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": { + "AssetDescription": { + "type": "string" + }, + "AssetHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetHierarchy" + }, + "type": "array" + }, + "AssetModelId": { + "type": "string" + }, + "AssetName": { + "type": "string" + }, + "AssetProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset.AssetProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssetModelId", + "AssetName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Asset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Asset.AssetHierarchy": { + "additionalProperties": false, + "properties": { + "ChildAssetId": { + "type": "string" + }, + "LogicalId": { + "type": "string" + } + }, + "required": [ + "ChildAssetId", + "LogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Asset.AssetProperty": { + "additionalProperties": false, + "properties": { + "Alias": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "NotificationState": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "LogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel": { + "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": { + "AssetModelCompositeModels": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel" + }, + "type": "array" + }, + "AssetModelDescription": { + "type": "string" + }, + "AssetModelHierarchies": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelHierarchy" + }, + "type": "array" + }, + "AssetModelName": { + "type": "string" + }, + "AssetModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssetModelName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::AssetModel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelCompositeModel": { + "additionalProperties": false, + "properties": { + "CompositeModelProperties": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.AssetModelProperty" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelHierarchy": { + "additionalProperties": false, + "properties": { + "ChildAssetModelId": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ChildAssetModelId", + "LogicalId", + "Name" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.AssetModelProperty": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "DataTypeSpec": { + "type": "string" + }, + "LogicalId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.PropertyType" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "DataType", + "LogicalId", + "Name", + "Type" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Attribute": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.ExpressionVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.VariableValue" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Metric": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + }, + "Window": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.MetricWindow" + } + }, + "required": [ + "Expression", + "Variables", + "Window" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.MetricWindow": { + "additionalProperties": false, + "properties": { + "Tumbling": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.TumblingWindow" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.PropertyType": { + "additionalProperties": false, + "properties": { + "Attribute": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Attribute" + }, + "Metric": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Metric" + }, + "Transform": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.Transform" + }, + "TypeName": { + "type": "string" + } + }, + "required": [ + "TypeName" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.Transform": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Variables": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel.ExpressionVariable" + }, + "type": "array" + } + }, + "required": [ + "Expression", + "Variables" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.TumblingWindow": { + "additionalProperties": false, + "properties": { + "Interval": { + "type": "string" + }, + "Offset": { + "type": "string" + } + }, + "required": [ + "Interval" + ], + "type": "object" + }, + "AWS::IoTSiteWise::AssetModel.VariableValue": { + "additionalProperties": false, + "properties": { + "HierarchyLogicalId": { + "type": "string" + }, + "PropertyLogicalId": { + "type": "string" + } + }, + "required": [ + "PropertyLogicalId" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Dashboard": { + "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": { + "DashboardDefinition": { + "type": "string" + }, + "DashboardDescription": { + "type": "string" + }, + "DashboardName": { + "type": "string" + }, + "ProjectId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DashboardDefinition", + "DashboardDescription", + "DashboardName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Dashboard" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway": { + "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": { + "GatewayCapabilitySummaries": { + "items": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary" + }, + "type": "array" + }, + "GatewayName": { + "type": "string" + }, + "GatewayPlatform": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GatewayPlatform" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GatewayName", + "GatewayPlatform" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Gateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayCapabilitySummary": { + "additionalProperties": false, + "properties": { + "CapabilityConfiguration": { + "type": "string" + }, + "CapabilityNamespace": { + "type": "string" + } + }, + "required": [ + "CapabilityNamespace" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GatewayPlatform": { + "additionalProperties": false, + "properties": { + "Greengrass": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.Greengrass" + }, + "GreengrassV2": { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway.GreengrassV2" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.Greengrass": { + "additionalProperties": false, + "properties": { + "GroupArn": { + "type": "string" + } + }, + "required": [ + "GroupArn" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Gateway.GreengrassV2": { + "additionalProperties": false, + "properties": { + "CoreDeviceThingName": { + "type": "string" + } + }, + "required": [ + "CoreDeviceThingName" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Portal": { + "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": { + "Alarms": { + "$ref": "#/definitions/AWS::IoTSiteWise::Portal.Alarms" + }, + "NotificationSenderEmail": { + "type": "string" + }, + "PortalAuthMode": { + "type": "string" + }, + "PortalContactEmail": { + "type": "string" + }, + "PortalDescription": { + "type": "string" + }, + "PortalName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PortalContactEmail", + "PortalName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Portal" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTSiteWise::Portal.Alarms": { + "additionalProperties": false, + "properties": { + "AlarmRoleArn": { + "type": "string" + }, + "NotificationLambdaArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTSiteWise::Project": { + "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": { + "AssetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PortalId": { + "type": "string" + }, + "ProjectDescription": { + "type": "string" + }, + "ProjectName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PortalId", + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTSiteWise::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate": { + "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": { + "CompatibleNamespaceVersion": { + "type": "number" + }, + "Definition": { + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument" + } + }, + "required": [ + "Definition" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTThingsGraph::FlowTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTThingsGraph::FlowTemplate.DefinitionDocument": { + "additionalProperties": false, + "properties": { + "Language": { + "type": "string" + }, + "Text": { + "type": "string" + } + }, + "required": [ + "Language", + "Text" + ], + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType": { + "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": { + "ComponentTypeId": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ExtendsFrom": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Functions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.Function" + } + }, + "type": "object" + }, + "IsSingleton": { + "type": "boolean" + }, + "PropertyDefinitions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.PropertyDefinition" + } + }, + "type": "object" + }, + "PropertyGroups": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.PropertyGroup" + } + }, + "type": "object" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceId": { + "type": "string" + } + }, + "required": [ + "ComponentTypeId", + "WorkspaceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTTwinMaker::ComponentType" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.DataConnector": { + "additionalProperties": false, + "properties": { + "IsNative": { + "type": "boolean" + }, + "Lambda": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.LambdaFunction" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.DataType": { + "additionalProperties": false, + "properties": { + "AllowedValues": { + "items": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue" + }, + "type": "array" + }, + "NestedType": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataType" + }, + "Relationship": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.Relationship" + }, + "Type": { + "type": "string" + }, + "UnitOfMeasure": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.DataValue": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "boolean" + }, + "DoubleValue": { + "type": "number" + }, + "Expression": { + "type": "string" + }, + "IntegerValue": { + "type": "number" + }, + "ListValue": { + "items": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue" + }, + "type": "array" + }, + "LongValue": { + "type": "number" + }, + "MapValue": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue" + } + }, + "type": "object" + }, + "RelationshipValue": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.RelationshipValue" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.Error": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "string" + }, + "Message": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.Function": { + "additionalProperties": false, + "properties": { + "ImplementedBy": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataConnector" + }, + "RequiredProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Scope": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.LambdaFunction": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.PropertyDefinition": { + "additionalProperties": false, + "properties": { + "Configurations": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DataType": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataType" + }, + "DefaultValue": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.DataValue" + }, + "IsExternalId": { + "type": "boolean" + }, + "IsRequiredInEntity": { + "type": "boolean" + }, + "IsStoredExternally": { + "type": "boolean" + }, + "IsTimeSeries": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.PropertyGroup": { + "additionalProperties": false, + "properties": { + "GroupType": { + "type": "string" + }, + "PropertyNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.Relationship": { + "additionalProperties": false, + "properties": { + "RelationshipType": { + "type": "string" + }, + "TargetComponentTypeId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.RelationshipValue": { + "additionalProperties": false, + "properties": { + "TargetComponentName": { + "type": "string" + }, + "TargetEntityId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::ComponentType.Status": { + "additionalProperties": false, + "properties": { + "Error": { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType.Error" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity": { + "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": { + "Components": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Component" + } + }, + "type": "object" + }, + "Description": { + "type": "string" + }, + "EntityId": { + "type": "string" + }, + "EntityName": { + "type": "string" + }, + "ParentEntityId": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceId": { + "type": "string" + } + }, + "required": [ + "EntityName", + "WorkspaceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTTwinMaker::Entity" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.Component": { + "additionalProperties": false, + "properties": { + "ComponentName": { + "type": "string" + }, + "ComponentTypeId": { + "type": "string" + }, + "DefinedIn": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Properties": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Property" + } + }, + "type": "object" + }, + "PropertyGroups": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.PropertyGroup" + } + }, + "type": "object" + }, + "Status": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Status" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.DataType": { + "additionalProperties": false, + "properties": { + "AllowedValues": { + "items": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue" + }, + "type": "array" + }, + "NestedType": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataType" + }, + "Relationship": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Relationship" + }, + "Type": { + "type": "string" + }, + "UnitOfMeasure": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.DataValue": { + "additionalProperties": false, + "properties": { + "BooleanValue": { + "type": "boolean" + }, + "DoubleValue": { + "type": "number" + }, + "Expression": { + "type": "string" + }, + "IntegerValue": { + "type": "number" + }, + "ListValue": { + "items": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue" + }, + "type": "array" + }, + "LongValue": { + "type": "number" + }, + "MapValue": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue" + } + }, + "type": "object" + }, + "RelationshipValue": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.RelationshipValue" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.Definition": { + "additionalProperties": false, + "properties": { + "Configuration": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DataType": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataType" + }, + "DefaultValue": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue" + }, + "IsExternalId": { + "type": "boolean" + }, + "IsFinal": { + "type": "boolean" + }, + "IsImported": { + "type": "boolean" + }, + "IsInherited": { + "type": "boolean" + }, + "IsRequiredInEntity": { + "type": "boolean" + }, + "IsStoredExternally": { + "type": "boolean" + }, + "IsTimeSeries": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.Error": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "string" + }, + "Message": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.Property": { + "additionalProperties": false, + "properties": { + "Definition": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Definition" + }, + "Value": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.DataValue" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.PropertyGroup": { + "additionalProperties": false, + "properties": { + "GroupType": { + "type": "string" + }, + "PropertyNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.Relationship": { + "additionalProperties": false, + "properties": { + "RelationshipType": { + "type": "string" + }, + "TargetComponentTypeId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.RelationshipValue": { + "additionalProperties": false, + "properties": { + "TargetComponentName": { + "type": "string" + }, + "TargetEntityId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Entity.Status": { + "additionalProperties": false, + "properties": { + "Error": { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity.Error" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTTwinMaker::Scene": { + "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": { + "Capabilities": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContentLocation": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "SceneId": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceId": { + "type": "string" + } + }, + "required": [ + "ContentLocation", + "SceneId", + "WorkspaceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTTwinMaker::Scene" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTTwinMaker::SyncJob": { + "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": { + "SyncRole": { + "type": "string" + }, + "SyncSource": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceId": { + "type": "string" + } + }, + "required": [ + "SyncRole", + "SyncSource", + "WorkspaceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTTwinMaker::SyncJob" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTTwinMaker::Workspace": { + "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": { + "Description": { + "type": "string" + }, + "Role": { + "type": "string" + }, + "S3Location": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "WorkspaceId": { + "type": "string" + } + }, + "required": [ + "Role", + "S3Location", + "WorkspaceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTTwinMaker::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::Destination": { + "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": { + "Description": { + "type": "string" + }, + "Expression": { + "type": "string" + }, + "ExpressionType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Expression", + "ExpressionType", + "Name", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::Destination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::DeviceProfile": { + "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": { + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::DeviceProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoTWireless::DeviceProfile.LoRaWANDeviceProfile": { + "additionalProperties": false, + "properties": { + "ClassBTimeout": { + "type": "number" + }, + "ClassCTimeout": { + "type": "number" + }, + "FactoryPresetFreqsList": { + "items": { + "type": "number" + }, + "type": "array" + }, + "MacVersion": { + "type": "string" + }, + "MaxDutyCycle": { + "type": "number" + }, + "MaxEirp": { + "type": "number" + }, + "PingSlotDr": { + "type": "number" + }, + "PingSlotFreq": { + "type": "number" + }, + "PingSlotPeriod": { + "type": "number" + }, + "RegParamsRevision": { + "type": "string" + }, + "RfRegion": { + "type": "string" + }, + "RxDataRate2": { + "type": "number" + }, + "RxDelay1": { + "type": "number" + }, + "RxDrOffset1": { + "type": "number" + }, + "RxFreq2": { + "type": "number" + }, + "Supports32BitFCnt": { + "type": "boolean" + }, + "SupportsClassB": { + "type": "boolean" + }, + "SupportsClassC": { + "type": "boolean" + }, + "SupportsJoin": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::IoTWireless::FuotaTask": { + "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": { + "AssociateMulticastGroup": { + "type": "string" + }, + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateMulticastGroup": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "FirmwareUpdateImage": { + "type": "string" + }, + "FirmwareUpdateRole": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FirmwareUpdateImage", + "FirmwareUpdateRole", + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::FuotaTask" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::FuotaTask.LoRaWAN": { + "additionalProperties": false, + "properties": { + "RfRegion": { + "type": "string" + }, + "StartTime": { + "type": "string" + } + }, + "required": [ + "RfRegion" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup": { + "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": { + "AssociateWirelessDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisassociateWirelessDevice": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup.LoRaWAN" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::MulticastGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::MulticastGroup.LoRaWAN": { + "additionalProperties": false, + "properties": { + "DlClass": { + "type": "string" + }, + "NumberOfDevicesInGroup": { + "type": "number" + }, + "NumberOfDevicesRequested": { + "type": "number" + }, + "RfRegion": { + "type": "string" + } + }, + "required": [ + "DlClass", + "RfRegion" + ], + "type": "object" + }, + "AWS::IoTWireless::NetworkAnalyzerConfiguration": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TraceContent": { + "$ref": "#/definitions/AWS::IoTWireless::NetworkAnalyzerConfiguration.TraceContent" + }, + "WirelessDevices": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WirelessGateways": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::NetworkAnalyzerConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::NetworkAnalyzerConfiguration.TraceContent": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + }, + "WirelessDeviceFrameInfo": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::PartnerAccount": { + "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": { + "AccountLinked": { + "type": "boolean" + }, + "PartnerAccountId": { + "type": "string" + }, + "PartnerType": { + "type": "string" + }, + "Sidewalk": { + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo" + }, + "SidewalkResponse": { + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkAccountInfoWithFingerprint" + }, + "SidewalkUpdate": { + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount.SidewalkUpdateAccount" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::PartnerAccount" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoTWireless::PartnerAccount.SidewalkAccountInfo": { + "additionalProperties": false, + "properties": { + "AppServerPrivateKey": { + "type": "string" + } + }, + "required": [ + "AppServerPrivateKey" + ], + "type": "object" + }, + "AWS::IoTWireless::PartnerAccount.SidewalkAccountInfoWithFingerprint": { + "additionalProperties": false, + "properties": { + "AmazonId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Fingerprint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::PartnerAccount.SidewalkUpdateAccount": { + "additionalProperties": false, + "properties": { + "AppServerPrivateKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::ServiceProfile": { + "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": { + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::ServiceProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::IoTWireless::ServiceProfile.LoRaWANServiceProfile": { + "additionalProperties": false, + "properties": { + "AddGwMetadata": { + "type": "boolean" + }, + "ChannelMask": { + "type": "string" + }, + "DevStatusReqFreq": { + "type": "number" + }, + "DlBucketSize": { + "type": "number" + }, + "DlRate": { + "type": "number" + }, + "DlRatePolicy": { + "type": "string" + }, + "DrMax": { + "type": "number" + }, + "DrMin": { + "type": "number" + }, + "HrAllowed": { + "type": "boolean" + }, + "MinGwDiversity": { + "type": "number" + }, + "NwkGeoLoc": { + "type": "boolean" + }, + "PrAllowed": { + "type": "boolean" + }, + "RaAllowed": { + "type": "boolean" + }, + "ReportDevStatusBattery": { + "type": "boolean" + }, + "ReportDevStatusMargin": { + "type": "boolean" + }, + "TargetPer": { + "type": "number" + }, + "UlBucketSize": { + "type": "number" + }, + "UlRate": { + "type": "number" + }, + "UlRatePolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition": { + "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": { + "AutoCreateTasks": { + "type": "boolean" + }, + "LoRaWANUpdateGatewayTaskEntry": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskDefinitionType": { + "type": "string" + }, + "Update": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate" + } + }, + "required": [ + "AutoCreateTasks" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::TaskDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion": { + "additionalProperties": false, + "properties": { + "Model": { + "type": "string" + }, + "PackageVersion": { + "type": "string" + }, + "Station": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate": { + "additionalProperties": false, + "properties": { + "CurrentVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + }, + "SigKeyCrc": { + "type": "number" + }, + "UpdateSignature": { + "type": "string" + }, + "UpdateVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + } + }, + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskEntry": { + "additionalProperties": false, + "properties": { + "CurrentVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + }, + "UpdateVersion": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANGatewayVersion" + } + }, + "type": "object" + }, + "AWS::IoTWireless::TaskDefinition.UpdateWirelessGatewayTaskCreate": { + "additionalProperties": false, + "properties": { + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition.LoRaWANUpdateGatewayTaskCreate" + }, + "UpdateDataRole": { + "type": "string" + }, + "UpdateDataSource": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice": { + "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": { + "Description": { + "type": "string" + }, + "DestinationName": { + "type": "string" + }, + "LastUplinkReceivedAt": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.LoRaWANDevice" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingArn": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "DestinationName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::WirelessDevice" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.AbpV10x": { + "additionalProperties": false, + "properties": { + "DevAddr": { + "type": "string" + }, + "SessionKeys": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x" + } + }, + "required": [ + "DevAddr", + "SessionKeys" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.AbpV11": { + "additionalProperties": false, + "properties": { + "DevAddr": { + "type": "string" + }, + "SessionKeys": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11" + } + }, + "required": [ + "DevAddr", + "SessionKeys" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.LoRaWANDevice": { + "additionalProperties": false, + "properties": { + "AbpV10x": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV10x" + }, + "AbpV11": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.AbpV11" + }, + "DevEui": { + "type": "string" + }, + "DeviceProfileId": { + "type": "string" + }, + "OtaaV10x": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV10x" + }, + "OtaaV11": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice.OtaaV11" + }, + "ServiceProfileId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.OtaaV10x": { + "additionalProperties": false, + "properties": { + "AppEui": { + "type": "string" + }, + "AppKey": { + "type": "string" + } + }, + "required": [ + "AppEui", + "AppKey" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.OtaaV11": { + "additionalProperties": false, + "properties": { + "AppKey": { + "type": "string" + }, + "JoinEui": { + "type": "string" + }, + "NwkKey": { + "type": "string" + } + }, + "required": [ + "AppKey", + "JoinEui", + "NwkKey" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV10x": { + "additionalProperties": false, + "properties": { + "AppSKey": { + "type": "string" + }, + "NwkSKey": { + "type": "string" + } + }, + "required": [ + "AppSKey", + "NwkSKey" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessDevice.SessionKeysAbpV11": { + "additionalProperties": false, + "properties": { + "AppSKey": { + "type": "string" + }, + "FNwkSIntKey": { + "type": "string" + }, + "NwkSEncKey": { + "type": "string" + }, + "SNwkSIntKey": { + "type": "string" + } + }, + "required": [ + "AppSKey", + "FNwkSIntKey", + "NwkSEncKey", + "SNwkSIntKey" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessGateway": { + "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": { + "Description": { + "type": "string" + }, + "LastUplinkReceivedAt": { + "type": "string" + }, + "LoRaWAN": { + "$ref": "#/definitions/AWS::IoTWireless::WirelessGateway.LoRaWANGateway" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThingArn": { + "type": "string" + }, + "ThingName": { + "type": "string" + } + }, + "required": [ + "LoRaWAN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::IoTWireless::WirelessGateway" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::IoTWireless::WirelessGateway.LoRaWANGateway": { + "additionalProperties": false, + "properties": { + "GatewayEui": { + "type": "string" + }, + "RfRegion": { + "type": "string" + } + }, + "required": [ + "GatewayEui", + "RfRegion" + ], + "type": "object" + }, + "AWS::KMS::Alias": { + "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": { + "AliasName": { + "type": "string" + }, + "TargetKeyId": { + "type": "string" + } + }, + "required": [ + "AliasName", + "TargetKeyId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KMS::Alias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KMS::Key": { + "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": { + "Description": { + "type": "string" + }, + "EnableKeyRotation": { + "type": "boolean" + }, + "Enabled": { + "type": "boolean" + }, + "KeyPolicy": { + "type": "object" + }, + "KeySpec": { + "type": "string" + }, + "KeyUsage": { + "type": "string" + }, + "MultiRegion": { + "type": "boolean" + }, + "PendingWindowInDays": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KeyPolicy" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KMS::Key" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KMS::ReplicaKey": { + "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": { + "Description": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "KeyPolicy": { + "type": "object" + }, + "PendingWindowInDays": { + "type": "number" + }, + "PrimaryKeyArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KeyPolicy", + "PrimaryKeyArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KMS::ReplicaKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector": { + "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": { + "Capacity": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.Capacity" + }, + "ConnectorConfiguration": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ConnectorDescription": { + "type": "string" + }, + "ConnectorName": { + "type": "string" + }, + "KafkaCluster": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaCluster" + }, + "KafkaClusterClientAuthentication": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication" + }, + "KafkaClusterEncryptionInTransit": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit" + }, + "KafkaConnectVersion": { + "type": "string" + }, + "LogDelivery": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.LogDelivery" + }, + "Plugins": { + "items": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.Plugin" + }, + "type": "array" + }, + "ServiceExecutionRoleArn": { + "type": "string" + }, + "WorkerConfiguration": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerConfiguration" + } + }, + "required": [ + "Capacity", + "ConnectorConfiguration", + "ConnectorName", + "KafkaCluster", + "KafkaClusterClientAuthentication", + "KafkaClusterEncryptionInTransit", + "KafkaConnectVersion", + "Plugins", + "ServiceExecutionRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KafkaConnect::Connector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.ApacheKafkaCluster": { + "additionalProperties": false, + "properties": { + "BootstrapServers": { + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.Vpc" + } + }, + "required": [ + "BootstrapServers", + "Vpc" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.AutoScaling": { + "additionalProperties": false, + "properties": { + "MaxWorkerCount": { + "type": "number" + }, + "McuCount": { + "type": "number" + }, + "MinWorkerCount": { + "type": "number" + }, + "ScaleInPolicy": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleInPolicy" + }, + "ScaleOutPolicy": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ScaleOutPolicy" + } + }, + "required": [ + "MaxWorkerCount", + "McuCount", + "MinWorkerCount", + "ScaleInPolicy", + "ScaleOutPolicy" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.Capacity": { + "additionalProperties": false, + "properties": { + "AutoScaling": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.AutoScaling" + }, + "ProvisionedCapacity": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ProvisionedCapacity" + } + }, + "type": "object" + }, + "AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroup": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.CustomPlugin": { + "additionalProperties": false, + "properties": { + "CustomPluginArn": { + "type": "string" + }, + "Revision": { + "type": "number" + } + }, + "required": [ + "CustomPluginArn", + "Revision" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.FirehoseLogDelivery": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.KafkaCluster": { + "additionalProperties": false, + "properties": { + "ApacheKafkaCluster": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.ApacheKafkaCluster" + } + }, + "required": [ + "ApacheKafkaCluster" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.KafkaClusterClientAuthentication": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + } + }, + "required": [ + "AuthenticationType" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.KafkaClusterEncryptionInTransit": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + } + }, + "required": [ + "EncryptionType" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.LogDelivery": { + "additionalProperties": false, + "properties": { + "WorkerLogDelivery": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.WorkerLogDelivery" + } + }, + "required": [ + "WorkerLogDelivery" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.Plugin": { + "additionalProperties": false, + "properties": { + "CustomPlugin": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.CustomPlugin" + } + }, + "required": [ + "CustomPlugin" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.ProvisionedCapacity": { + "additionalProperties": false, + "properties": { + "McuCount": { + "type": "number" + }, + "WorkerCount": { + "type": "number" + } + }, + "required": [ + "WorkerCount" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.S3LogDelivery": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.ScaleInPolicy": { + "additionalProperties": false, + "properties": { + "CpuUtilizationPercentage": { + "type": "number" + } + }, + "required": [ + "CpuUtilizationPercentage" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.ScaleOutPolicy": { + "additionalProperties": false, + "properties": { + "CpuUtilizationPercentage": { + "type": "number" + } + }, + "required": [ + "CpuUtilizationPercentage" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.Vpc": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroups", + "Subnets" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.WorkerConfiguration": { + "additionalProperties": false, + "properties": { + "Revision": { + "type": "number" + }, + "WorkerConfigurationArn": { + "type": "string" + } + }, + "required": [ + "Revision", + "WorkerConfigurationArn" + ], + "type": "object" + }, + "AWS::KafkaConnect::Connector.WorkerLogDelivery": { + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.CloudWatchLogsLogDelivery" + }, + "Firehose": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.FirehoseLogDelivery" + }, + "S3": { + "$ref": "#/definitions/AWS::KafkaConnect::Connector.S3LogDelivery" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource": { + "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": { + "CustomDocumentEnrichmentConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.CustomDocumentEnrichmentConfiguration" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Schedule": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "IndexId", + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Kendra::DataSource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.AccessControlListConfiguration": { + "additionalProperties": false, + "properties": { + "KeyPath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.AclConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedGroupsColumnName": { + "type": "string" + } + }, + "required": [ + "AllowedGroupsColumnName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ColumnConfiguration": { + "additionalProperties": false, + "properties": { + "ChangeDetectingColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DocumentDataColumnName": { + "type": "string" + }, + "DocumentIdColumnName": { + "type": "string" + }, + "DocumentTitleColumnName": { + "type": "string" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + } + }, + "required": [ + "ChangeDetectingColumns", + "DocumentDataColumnName", + "DocumentIdColumnName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceAttachmentConfiguration": { + "additionalProperties": false, + "properties": { + "AttachmentFieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping" + }, + "type": "array" + }, + "CrawlAttachments": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceAttachmentToIndexFieldMapping": { + "additionalProperties": false, + "properties": { + "DataSourceFieldName": { + "type": "string" + }, + "DateFieldFormat": { + "type": "string" + }, + "IndexFieldName": { + "type": "string" + } + }, + "required": [ + "DataSourceFieldName", + "IndexFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceBlogConfiguration": { + "additionalProperties": false, + "properties": { + "BlogFieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceBlogToIndexFieldMapping" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceBlogToIndexFieldMapping": { + "additionalProperties": false, + "properties": { + "DataSourceFieldName": { + "type": "string" + }, + "DateFieldFormat": { + "type": "string" + }, + "IndexFieldName": { + "type": "string" + } + }, + "required": [ + "DataSourceFieldName", + "IndexFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceConfiguration": { + "additionalProperties": false, + "properties": { + "AttachmentConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceAttachmentConfiguration" + }, + "BlogConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceBlogConfiguration" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PageConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageConfiguration" + }, + "SecretArn": { + "type": "string" + }, + "ServerUrl": { + "type": "string" + }, + "SpaceConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceSpaceConfiguration" + }, + "Version": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration" + } + }, + "required": [ + "SecretArn", + "ServerUrl", + "Version" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluencePageConfiguration": { + "additionalProperties": false, + "properties": { + "PageFieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluencePageToIndexFieldMapping": { + "additionalProperties": false, + "properties": { + "DataSourceFieldName": { + "type": "string" + }, + "DateFieldFormat": { + "type": "string" + }, + "IndexFieldName": { + "type": "string" + } + }, + "required": [ + "DataSourceFieldName", + "IndexFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceSpaceConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlArchivedSpaces": { + "type": "boolean" + }, + "CrawlPersonalSpaces": { + "type": "boolean" + }, + "ExcludeSpaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludeSpaces": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SpaceFieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceSpaceToIndexFieldMapping" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.ConfluenceSpaceToIndexFieldMapping": { + "additionalProperties": false, + "properties": { + "DataSourceFieldName": { + "type": "string" + }, + "DateFieldFormat": { + "type": "string" + }, + "IndexFieldName": { + "type": "string" + } + }, + "required": [ + "DataSourceFieldName", + "IndexFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ConnectionConfiguration": { + "additionalProperties": false, + "properties": { + "DatabaseHost": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DatabasePort": { + "type": "number" + }, + "SecretArn": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "DatabaseHost", + "DatabaseName", + "DatabasePort", + "SecretArn", + "TableName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.CustomDocumentEnrichmentConfiguration": { + "additionalProperties": false, + "properties": { + "InlineConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.InlineCustomDocumentEnrichmentConfiguration" + }, + "type": "array" + }, + "PostExtractionHookConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.HookConfiguration" + }, + "PreExtractionHookConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.HookConfiguration" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "ConfluenceConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConfluenceConfiguration" + }, + "DatabaseConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DatabaseConfiguration" + }, + "GoogleDriveConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.GoogleDriveConfiguration" + }, + "OneDriveConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.OneDriveConfiguration" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.S3DataSourceConfiguration" + }, + "SalesforceConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceConfiguration" + }, + "ServiceNowConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ServiceNowConfiguration" + }, + "SharePointConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SharePointConfiguration" + }, + "WebCrawlerConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerConfiguration" + }, + "WorkDocsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WorkDocsConfiguration" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.DataSourceToIndexFieldMapping": { + "additionalProperties": false, + "properties": { + "DataSourceFieldName": { + "type": "string" + }, + "DateFieldFormat": { + "type": "string" + }, + "IndexFieldName": { + "type": "string" + } + }, + "required": [ + "DataSourceFieldName", + "IndexFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.DataSourceVpcConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "SubnetIds" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.DatabaseConfiguration": { + "additionalProperties": false, + "properties": { + "AclConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.AclConfiguration" + }, + "ColumnConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ColumnConfiguration" + }, + "ConnectionConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ConnectionConfiguration" + }, + "DatabaseEngineType": { + "type": "string" + }, + "SqlConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SqlConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration" + } + }, + "required": [ + "ColumnConfiguration", + "ConnectionConfiguration", + "DatabaseEngineType" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.DocumentAttributeCondition": { + "additionalProperties": false, + "properties": { + "ConditionDocumentAttributeKey": { + "type": "string" + }, + "ConditionOnValue": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeValue" + }, + "Operator": { + "type": "string" + } + }, + "required": [ + "ConditionDocumentAttributeKey", + "Operator" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.DocumentAttributeTarget": { + "additionalProperties": false, + "properties": { + "TargetDocumentAttributeKey": { + "type": "string" + }, + "TargetDocumentAttributeValue": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeValue" + }, + "TargetDocumentAttributeValueDeletion": { + "type": "boolean" + } + }, + "required": [ + "TargetDocumentAttributeKey" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.DocumentAttributeValue": { + "additionalProperties": false, + "properties": { + "DateValue": { + "type": "string" + }, + "LongValue": { + "type": "number" + }, + "StringListValue": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StringValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.DocumentsMetadataConfiguration": { + "additionalProperties": false, + "properties": { + "S3Prefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.GoogleDriveConfiguration": { + "additionalProperties": false, + "properties": { + "ExcludeMimeTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludeSharedDrives": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExcludeUserAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecretArn": { + "type": "string" + } + }, + "required": [ + "SecretArn" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.HookConfiguration": { + "additionalProperties": false, + "properties": { + "InvocationCondition": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeCondition" + }, + "LambdaArn": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + } + }, + "required": [ + "LambdaArn", + "S3Bucket" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.InlineCustomDocumentEnrichmentConfiguration": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeCondition" + }, + "DocumentContentDeletion": { + "type": "boolean" + }, + "Target": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentAttributeTarget" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.OneDriveConfiguration": { + "additionalProperties": false, + "properties": { + "DisableLocalGroups": { + "type": "boolean" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OneDriveUsers": { + "$ref": "#/definitions/AWS::Kendra::DataSource.OneDriveUsers" + }, + "SecretArn": { + "type": "string" + }, + "TenantDomain": { + "type": "string" + } + }, + "required": [ + "OneDriveUsers", + "SecretArn", + "TenantDomain" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.OneDriveUsers": { + "additionalProperties": false, + "properties": { + "OneDriveUserList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OneDriveUserS3Path": { + "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.ProxyConfiguration": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Host", + "Port" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.S3DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "AccessControlListConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.AccessControlListConfiguration" + }, + "BucketName": { + "type": "string" + }, + "DocumentsMetadataConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DocumentsMetadataConfiguration" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InclusionPrefixes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.S3Path": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SalesforceChatterFeedConfiguration": { + "additionalProperties": false, + "properties": { + "DocumentDataFieldName": { + "type": "string" + }, + "DocumentTitleFieldName": { + "type": "string" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "IncludeFilterTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "DocumentDataFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SalesforceConfiguration": { + "additionalProperties": false, + "properties": { + "ChatterFeedConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceChatterFeedConfiguration" + }, + "CrawlAttachments": { + "type": "boolean" + }, + "ExcludeAttachmentFilePatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludeAttachmentFilePatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "KnowledgeArticleConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceKnowledgeArticleConfiguration" + }, + "SecretArn": { + "type": "string" + }, + "ServerUrl": { + "type": "string" + }, + "StandardObjectAttachmentConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceStandardObjectAttachmentConfiguration" + }, + "StandardObjectConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceStandardObjectConfiguration" + }, + "type": "array" + } + }, + "required": [ + "SecretArn", + "ServerUrl" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfiguration": { + "additionalProperties": false, + "properties": { + "DocumentDataFieldName": { + "type": "string" + }, + "DocumentTitleFieldName": { + "type": "string" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "DocumentDataFieldName", + "Name" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SalesforceKnowledgeArticleConfiguration": { + "additionalProperties": false, + "properties": { + "CustomKnowledgeArticleTypeConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceCustomKnowledgeArticleTypeConfiguration" + }, + "type": "array" + }, + "IncludedStates": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StandardKnowledgeArticleTypeConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.SalesforceStandardKnowledgeArticleTypeConfiguration" + } + }, + "required": [ + "IncludedStates" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SalesforceStandardKnowledgeArticleTypeConfiguration": { + "additionalProperties": false, + "properties": { + "DocumentDataFieldName": { + "type": "string" + }, + "DocumentTitleFieldName": { + "type": "string" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + } + }, + "required": [ + "DocumentDataFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SalesforceStandardObjectAttachmentConfiguration": { + "additionalProperties": false, + "properties": { + "DocumentTitleFieldName": { + "type": "string" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.SalesforceStandardObjectConfiguration": { + "additionalProperties": false, + "properties": { + "DocumentDataFieldName": { + "type": "string" + }, + "DocumentTitleFieldName": { + "type": "string" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "DocumentDataFieldName", + "Name" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ServiceNowConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationType": { + "type": "string" + }, + "HostUrl": { + "type": "string" + }, + "KnowledgeArticleConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ServiceNowKnowledgeArticleConfiguration" + }, + "SecretArn": { + "type": "string" + }, + "ServiceCatalogConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ServiceNowServiceCatalogConfiguration" + }, + "ServiceNowBuildVersion": { + "type": "string" + } + }, + "required": [ + "HostUrl", + "SecretArn", + "ServiceNowBuildVersion" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ServiceNowKnowledgeArticleConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlAttachments": { + "type": "boolean" + }, + "DocumentDataFieldName": { + "type": "string" + }, + "DocumentTitleFieldName": { + "type": "string" + }, + "ExcludeAttachmentFilePatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "FilterQuery": { + "type": "string" + }, + "IncludeAttachmentFilePatterns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "DocumentDataFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.ServiceNowServiceCatalogConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlAttachments": { + "type": "boolean" + }, + "DocumentDataFieldName": { + "type": "string" + }, + "DocumentTitleFieldName": { + "type": "string" + }, + "ExcludeAttachmentFilePatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "IncludeAttachmentFilePatterns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "DocumentDataFieldName" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SharePointConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlAttachments": { + "type": "boolean" + }, + "DisableLocalGroups": { + "type": "boolean" + }, + "DocumentTitleFieldName": { + "type": "string" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecretArn": { + "type": "string" + }, + "SharePointVersion": { + "type": "string" + }, + "SslCertificateS3Path": { + "$ref": "#/definitions/AWS::Kendra::DataSource.S3Path" + }, + "Urls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UseChangeLog": { + "type": "boolean" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceVpcConfiguration" + } + }, + "required": [ + "SecretArn", + "SharePointVersion", + "Urls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.SqlConfiguration": { + "additionalProperties": false, + "properties": { + "QueryIdentifiersEnclosingOption": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "BasicAuthentication": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerBasicAuthentication" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerBasicAuthentication": { + "additionalProperties": false, + "properties": { + "Credentials": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Credentials", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerConfiguration": { + "additionalProperties": false, + "properties": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerAuthenticationConfiguration" + }, + "CrawlDepth": { + "type": "number" + }, + "MaxContentSizePerPageInMegaBytes": { + "type": "number" + }, + "MaxLinksPerPage": { + "type": "number" + }, + "MaxUrlsPerMinuteCrawlRate": { + "type": "number" + }, + "ProxyConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.ProxyConfiguration" + }, + "UrlExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "UrlInclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Urls": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerUrls" + } + }, + "required": [ + "Urls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration": { + "additionalProperties": false, + "properties": { + "SeedUrls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WebCrawlerMode": { + "type": "string" + } + }, + "required": [ + "SeedUrls" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration": { + "additionalProperties": false, + "properties": { + "SiteMaps": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SiteMaps" + ], + "type": "object" + }, + "AWS::Kendra::DataSource.WebCrawlerUrls": { + "additionalProperties": false, + "properties": { + "SeedUrlConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSeedUrlConfiguration" + }, + "SiteMapsConfiguration": { + "$ref": "#/definitions/AWS::Kendra::DataSource.WebCrawlerSiteMapsConfiguration" + } + }, + "type": "object" + }, + "AWS::Kendra::DataSource.WorkDocsConfiguration": { + "additionalProperties": false, + "properties": { + "CrawlComments": { + "type": "boolean" + }, + "ExclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FieldMappings": { + "items": { + "$ref": "#/definitions/AWS::Kendra::DataSource.DataSourceToIndexFieldMapping" + }, + "type": "array" + }, + "InclusionPatterns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OrganizationId": { + "type": "string" + }, + "UseChangeLog": { + "type": "boolean" + } + }, + "required": [ + "OrganizationId" + ], + "type": "object" + }, + "AWS::Kendra::Faq": { + "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": { + "Description": { + "type": "string" + }, + "FileFormat": { + "type": "string" + }, + "IndexId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "S3Path": { + "$ref": "#/definitions/AWS::Kendra::Faq.S3Path" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "IndexId", + "Name", + "RoleArn", + "S3Path" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Kendra::Faq" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Kendra::Faq.S3Path": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::Kendra::Index": { + "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": { + "CapacityUnits": { + "$ref": "#/definitions/AWS::Kendra::Index.CapacityUnitsConfiguration" + }, + "Description": { + "type": "string" + }, + "DocumentMetadataConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Kendra::Index.DocumentMetadataConfiguration" + }, + "type": "array" + }, + "Edition": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Kendra::Index.ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserContextPolicy": { + "type": "string" + }, + "UserTokenConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Kendra::Index.UserTokenConfiguration" + }, + "type": "array" + } + }, + "required": [ + "Edition", + "Name", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Kendra::Index" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Kendra::Index.CapacityUnitsConfiguration": { + "additionalProperties": false, + "properties": { + "QueryCapacityUnits": { + "type": "number" + }, + "StorageCapacityUnits": { + "type": "number" + } + }, + "required": [ + "QueryCapacityUnits", + "StorageCapacityUnits" + ], + "type": "object" + }, + "AWS::Kendra::Index.DocumentMetadataConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Relevance": { + "$ref": "#/definitions/AWS::Kendra::Index.Relevance" + }, + "Search": { + "$ref": "#/definitions/AWS::Kendra::Index.Search" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::Kendra::Index.JsonTokenTypeConfiguration": { + "additionalProperties": false, + "properties": { + "GroupAttributeField": { + "type": "string" + }, + "UserNameAttributeField": { + "type": "string" + } + }, + "required": [ + "GroupAttributeField", + "UserNameAttributeField" + ], + "type": "object" + }, + "AWS::Kendra::Index.JwtTokenTypeConfiguration": { + "additionalProperties": false, + "properties": { + "ClaimRegex": { + "type": "string" + }, + "GroupAttributeField": { + "type": "string" + }, + "Issuer": { + "type": "string" + }, + "KeyLocation": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "URL": { + "type": "string" + }, + "UserNameAttributeField": { + "type": "string" + } + }, + "required": [ + "KeyLocation" + ], + "type": "object" + }, + "AWS::Kendra::Index.Relevance": { + "additionalProperties": false, + "properties": { + "Duration": { + "type": "string" + }, + "Freshness": { + "type": "boolean" + }, + "Importance": { + "type": "number" + }, + "RankOrder": { + "type": "string" + }, + "ValueImportanceItems": { + "items": { + "$ref": "#/definitions/AWS::Kendra::Index.ValueImportanceItem" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Kendra::Index.Search": { + "additionalProperties": false, + "properties": { + "Displayable": { + "type": "boolean" + }, + "Facetable": { + "type": "boolean" + }, + "Searchable": { + "type": "boolean" + }, + "Sortable": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Kendra::Index.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Kendra::Index.UserTokenConfiguration": { + "additionalProperties": false, + "properties": { + "JsonTokenTypeConfiguration": { + "$ref": "#/definitions/AWS::Kendra::Index.JsonTokenTypeConfiguration" + }, + "JwtTokenTypeConfiguration": { + "$ref": "#/definitions/AWS::Kendra::Index.JwtTokenTypeConfiguration" + } + }, + "type": "object" + }, + "AWS::Kendra::Index.ValueImportanceItem": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Kinesis::Stream": { + "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": { + "Name": { + "type": "string" + }, + "RetentionPeriodHours": { + "type": "number" + }, + "ShardCount": { + "type": "number" + }, + "StreamEncryption": { + "$ref": "#/definitions/AWS::Kinesis::Stream.StreamEncryption" + }, + "StreamModeDetails": { + "$ref": "#/definitions/AWS::Kinesis::Stream.StreamModeDetails" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Kinesis::Stream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Kinesis::Stream.StreamEncryption": { + "additionalProperties": false, + "properties": { + "EncryptionType": { + "type": "string" + }, + "KeyId": { + "type": "string" + } + }, + "required": [ + "EncryptionType", + "KeyId" + ], + "type": "object" + }, + "AWS::Kinesis::Stream.StreamModeDetails": { + "additionalProperties": false, + "properties": { + "StreamMode": { + "type": "string" + } + }, + "required": [ + "StreamMode" + ], + "type": "object" + }, + "AWS::Kinesis::StreamConsumer": { + "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": { + "ConsumerName": { + "type": "string" + }, + "StreamARN": { + "type": "string" + } + }, + "required": [ + "ConsumerName", + "StreamARN" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Kinesis::StreamConsumer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application": { + "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": { + "ApplicationCode": { + "type": "string" + }, + "ApplicationDescription": { + "type": "string" + }, + "ApplicationName": { + "type": "string" + }, + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.Input" + }, + "type": "array" + } + }, + "required": [ + "Inputs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisAnalytics::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.Input": { + "additionalProperties": false, + "properties": { + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputParallelism" + }, + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputProcessingConfiguration" + }, + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.KinesisStreamsInput" + }, + "NamePrefix": { + "type": "string" + } + }, + "required": [ + "InputSchema", + "NamePrefix" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputLambdaProcessor": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputParallelism": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.InputLambdaProcessor" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.InputSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisFirehoseInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.KinesisStreamsInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::Application.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { + "type": "string" + } + }, + "required": [ + "Name", + "SqlType" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::Application.RecordFormat": { + "additionalProperties": false, + "properties": { + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application.MappingParameters" + }, + "RecordFormatType": { + "type": "string" + } + }, + "required": [ + "RecordFormatType" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Output": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.Output" + } + }, + "required": [ + "ApplicationName", + "Output" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisAnalytics::ApplicationOutput" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema": { + "additionalProperties": false, + "properties": { + "RecordFormatType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationOutput.Output": { + "additionalProperties": false, + "properties": { + "DestinationSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.DestinationSchema" + }, + "KinesisFirehoseOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisFirehoseOutput" + }, + "KinesisStreamsOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.KinesisStreamsOutput" + }, + "LambdaOutput": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput.LambdaOutput" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "DestinationSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource": { + "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": { + "ApplicationName": { + "type": "string" + }, + "ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource" + } + }, + "required": [ + "ApplicationName", + "ReferenceDataSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisAnalytics::ApplicationReferenceDataSource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { + "type": "string" + } + }, + "required": [ + "Name", + "SqlType" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat": { + "additionalProperties": false, + "properties": { + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.MappingParameters" + }, + "RecordFormatType": { + "type": "string" + } + }, + "required": [ + "RecordFormatType" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "ReferenceSchema": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema" + }, + "S3ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "ReferenceSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.ReferenceSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalytics::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" + }, + "FileKey": { + "type": "string" + }, + "ReferenceRoleARN": { + "type": "string" + } + }, + "required": [ + "BucketARN", + "FileKey", + "ReferenceRoleARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application": { + "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": { + "ApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration" + }, + "ApplicationDescription": { + "type": "string" + }, + "ApplicationMaintenanceConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationMaintenanceConfiguration" + }, + "ApplicationMode": { + "type": "string" + }, + "ApplicationName": { + "type": "string" + }, + "RunConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RunConfiguration" + }, + "RuntimeEnvironment": { + "type": "string" + }, + "ServiceExecutionRole": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "RuntimeEnvironment", + "ServiceExecutionRole" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration": { + "additionalProperties": false, + "properties": { + "CodeContent": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CodeContent" + }, + "CodeContentType": { + "type": "string" + } + }, + "required": [ + "CodeContent", + "CodeContentType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationCodeConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationCodeConfiguration" + }, + "ApplicationSnapshotConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration" + }, + "EnvironmentProperties": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.EnvironmentProperties" + }, + "FlinkApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration" + }, + "SqlApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration" + }, + "VpcConfigurations": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.VpcConfiguration" + }, + "type": "array" + }, + "ZeppelinApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ZeppelinApplicationConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationMaintenanceConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationMaintenanceWindowStartTime": { + "type": "string" + } + }, + "required": [ + "ApplicationMaintenanceWindowStartTime" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationRestoreConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationRestoreType": { + "type": "string" + }, + "SnapshotName": { + "type": "string" + } + }, + "required": [ + "ApplicationRestoreType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ApplicationSnapshotConfiguration": { + "additionalProperties": false, + "properties": { + "SnapshotsEnabled": { + "type": "boolean" + } + }, + "required": [ + "SnapshotsEnabled" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.CatalogConfiguration": { + "additionalProperties": false, + "properties": { + "GlueDataCatalogConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.GlueDataCatalogConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration": { + "additionalProperties": false, + "properties": { + "CheckpointInterval": { + "type": "number" + }, + "CheckpointingEnabled": { + "type": "boolean" + }, + "ConfigurationType": { + "type": "string" + }, + "MinPauseBetweenCheckpoints": { + "type": "number" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.CodeContent": { + "additionalProperties": false, + "properties": { + "S3ContentLocation": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation" + }, + "TextContent": { + "type": "string" + }, + "ZipFileContent": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration": { + "additionalProperties": false, + "properties": { + "ArtifactType": { + "type": "string" + }, + "MavenReference": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MavenReference" + }, + "S3ContentLocation": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentLocation" + } + }, + "required": [ + "ArtifactType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "S3ContentLocation": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.S3ContentBaseLocation" + } + }, + "required": [ + "S3ContentLocation" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.EnvironmentProperties": { + "additionalProperties": false, + "properties": { + "PropertyGroups": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.PropertyGroup" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.FlinkApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "CheckpointConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CheckpointConfiguration" + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration" + }, + "ParallelismConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.FlinkRunConfiguration": { + "additionalProperties": false, + "properties": { + "AllowNonRestoredState": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.GlueDataCatalogConfiguration": { + "additionalProperties": false, + "properties": { + "DatabaseARN": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.Input": { + "additionalProperties": false, + "properties": { + "InputParallelism": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputParallelism" + }, + "InputProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration" + }, + "InputSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputSchema" + }, + "KinesisFirehoseInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput" + }, + "KinesisStreamsInput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput" + }, + "NamePrefix": { + "type": "string" + } + }, + "required": [ + "InputSchema", + "NamePrefix" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputParallelism": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "InputLambdaProcessor": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.InputLambdaProcessor" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.InputSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.KinesisFirehoseInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.KinesisStreamsInput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.MavenReference": { + "additionalProperties": false, + "properties": { + "ArtifactId": { + "type": "string" + }, + "GroupId": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "ArtifactId", + "GroupId", + "Version" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.MonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "ConfigurationType": { + "type": "string" + }, + "LogLevel": { + "type": "string" + }, + "MetricsLevel": { + "type": "string" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ParallelismConfiguration": { + "additionalProperties": false, + "properties": { + "AutoScalingEnabled": { + "type": "boolean" + }, + "ConfigurationType": { + "type": "string" + }, + "Parallelism": { + "type": "number" + }, + "ParallelismPerKPU": { + "type": "number" + } + }, + "required": [ + "ConfigurationType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.PropertyGroup": { + "additionalProperties": false, + "properties": { + "PropertyGroupId": { + "type": "string" + }, + "PropertyMap": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { + "type": "string" + } + }, + "required": [ + "Name", + "SqlType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.RecordFormat": { + "additionalProperties": false, + "properties": { + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.MappingParameters" + }, + "RecordFormatType": { + "type": "string" + } + }, + "required": [ + "RecordFormatType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.RunConfiguration": { + "additionalProperties": false, + "properties": { + "ApplicationRestoreConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ApplicationRestoreConfiguration" + }, + "FlinkRunConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.FlinkRunConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.S3ContentBaseLocation": { + "additionalProperties": false, + "properties": { + "BasePath": { + "type": "string" + }, + "BucketARN": { + "type": "string" + } + }, + "required": [ + "BucketARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.S3ContentLocation": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" + }, + "FileKey": { + "type": "string" + }, + "ObjectVersion": { + "type": "string" + } + }, + "required": [ + "BucketARN", + "FileKey" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.SqlApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Inputs": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.Input" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "SubnetIds" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ZeppelinApplicationConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CatalogConfiguration" + }, + "CustomArtifactsConfiguration": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.CustomArtifactConfiguration" + }, + "type": "array" + }, + "DeployAsApplicationConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.DeployAsApplicationConfiguration" + }, + "MonitoringConfiguration": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::Application.ZeppelinMonitoringConfiguration": { + "additionalProperties": false, + "properties": { + "LogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption": { + "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": { + "ApplicationName": { + "type": "string" + }, + "CloudWatchLoggingOption": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption" + } + }, + "required": [ + "ApplicationName", + "CloudWatchLoggingOption" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption.CloudWatchLoggingOption": { + "additionalProperties": false, + "properties": { + "LogStreamARN": { + "type": "string" + } + }, + "required": [ + "LogStreamARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput": { + "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": { + "ApplicationName": { + "type": "string" + }, + "Output": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.Output" + } + }, + "required": [ + "ApplicationName", + "Output" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::ApplicationOutput" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema": { + "additionalProperties": false, + "properties": { + "RecordFormatType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput": { + "additionalProperties": false, + "properties": { + "ResourceARN": { + "type": "string" + } + }, + "required": [ + "ResourceARN" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationOutput.Output": { + "additionalProperties": false, + "properties": { + "DestinationSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.DestinationSchema" + }, + "KinesisFirehoseOutput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisFirehoseOutput" + }, + "KinesisStreamsOutput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.KinesisStreamsOutput" + }, + "LambdaOutput": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput.LambdaOutput" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "DestinationSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource": { + "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": { + "ApplicationName": { + "type": "string" + }, + "ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource" + } + }, + "required": [ + "ApplicationName", + "ReferenceDataSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordColumnDelimiter": { + "type": "string" + }, + "RecordRowDelimiter": { + "type": "string" + } + }, + "required": [ + "RecordColumnDelimiter", + "RecordRowDelimiter" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters": { + "additionalProperties": false, + "properties": { + "RecordRowPath": { + "type": "string" + } + }, + "required": [ + "RecordRowPath" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters": { + "additionalProperties": false, + "properties": { + "CSVMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.CSVMappingParameters" + }, + "JSONMappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.JSONMappingParameters" + } + }, + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn": { + "additionalProperties": false, + "properties": { + "Mapping": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlType": { + "type": "string" + } + }, + "required": [ + "Name", + "SqlType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat": { + "additionalProperties": false, + "properties": { + "MappingParameters": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.MappingParameters" + }, + "RecordFormatType": { + "type": "string" + } + }, + "required": [ + "RecordFormatType" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "ReferenceSchema": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema" + }, + "S3ReferenceDataSource": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "ReferenceSchema" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.ReferenceSchema": { + "additionalProperties": false, + "properties": { + "RecordColumns": { + "items": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordColumn" + }, + "type": "array" + }, + "RecordEncoding": { + "type": "string" + }, + "RecordFormat": { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.RecordFormat" + } + }, + "required": [ + "RecordColumns", + "RecordFormat" + ], + "type": "object" + }, + "AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource.S3ReferenceDataSource": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" + }, + "FileKey": { + "type": "string" + } + }, + "required": [ + "BucketARN", + "FileKey" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream": { + "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": { + "AmazonOpenSearchServerlessDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessDestinationConfiguration" + }, + "AmazonopensearchserviceDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration" + }, + "DeliveryStreamEncryptionConfigurationInput": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput" + }, + "DeliveryStreamName": { + "type": "string" + }, + "DeliveryStreamType": { + "type": "string" + }, + "ElasticsearchDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration" + }, + "ExtendedS3DestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration" + }, + "HttpEndpointDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration" + }, + "KinesisStreamSourceConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration" + }, + "RedshiftDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration" + }, + "S3DestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "SplunkDestinationConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisFirehose::DeliveryStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "CollectionEndpoint": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonOpenSearchServerlessRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "type": "string" + }, + "DomainARN": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "IndexRotationPeriod": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "TypeName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.AmazonopensearchserviceRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.BufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroupName": { + "type": "string" + }, + "LogStreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.CopyCommand": { + "additionalProperties": false, + "properties": { + "CopyOptions": { + "type": "string" + }, + "DataTableColumns": { + "type": "string" + }, + "DataTableName": { + "type": "string" + } + }, + "required": [ + "DataTableName" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration" + }, + "OutputFormatConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration" + }, + "SchemaConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DeliveryStreamEncryptionConfigurationInput": { + "additionalProperties": false, + "properties": { + "KeyARN": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Deserializer": { + "additionalProperties": false, + "properties": { + "HiveJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe" + }, + "OpenXJsonSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints": { + "additionalProperties": false, + "properties": { + "IntervalInSeconds": { + "type": "number" + }, + "SizeInMBs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchBufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "ClusterEndpoint": { + "type": "string" + }, + "DomainARN": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "IndexRotationPeriod": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "TypeName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.VpcConfiguration" + } + }, + "required": [ + "IndexName", + "RoleARN", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ElasticsearchRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KMSEncryptionConfig": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig" + }, + "NoEncryptionConfig": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ExtendedS3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "type": "string" + }, + "DataFormatConversionConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DataFormatConversionConfiguration" + }, + "DynamicPartitioningConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.DynamicPartitioningConfiguration" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "S3BackupMode": { + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HiveJsonSerDe": { + "additionalProperties": false, + "properties": { + "TimestampFormats": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute": { + "additionalProperties": false, + "properties": { + "AttributeName": { + "type": "string" + }, + "AttributeValue": { + "type": "string" + } + }, + "required": [ + "AttributeName", + "AttributeValue" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration": { + "additionalProperties": false, + "properties": { + "AccessKey": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "EndpointConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointConfiguration" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RequestConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + } + }, + "required": [ + "EndpointConfiguration", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.HttpEndpointRequestConfiguration": { + "additionalProperties": false, + "properties": { + "CommonAttributes": { + "items": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.HttpEndpointCommonAttribute" + }, + "type": "array" + }, + "ContentEncoding": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.InputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Deserializer": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Deserializer" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.KMSEncryptionConfig": { + "additionalProperties": false, + "properties": { + "AWSKMSKeyARN": { + "type": "string" + } + }, + "required": [ + "AWSKMSKeyARN" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.KinesisStreamSourceConfiguration": { + "additionalProperties": false, + "properties": { + "KinesisStreamARN": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "KinesisStreamARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.OpenXJsonSerDe": { + "additionalProperties": false, + "properties": { + "CaseInsensitive": { + "type": "boolean" + }, + "ColumnToJsonKeyMappings": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ConvertDotsInJsonKeysToUnderscores": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.OrcSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "number" + }, + "BloomFilterColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BloomFilterFalsePositiveProbability": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "DictionaryKeyThreshold": { + "type": "number" + }, + "EnablePadding": { + "type": "boolean" + }, + "FormatVersion": { + "type": "string" + }, + "PaddingTolerance": { + "type": "number" + }, + "RowIndexStride": { + "type": "number" + }, + "StripeSizeBytes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.OutputFormatConfiguration": { + "additionalProperties": false, + "properties": { + "Serializer": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Serializer" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ParquetSerDe": { + "additionalProperties": false, + "properties": { + "BlockSizeBytes": { + "type": "number" + }, + "Compression": { + "type": "string" + }, + "EnableDictionaryCompression": { + "type": "boolean" + }, + "MaxPaddingBytes": { + "type": "number" + }, + "PageSizeBytes": { + "type": "number" + }, + "WriterVersion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "Processors": { + "items": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.Processor" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Processor": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessorParameter" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.ProcessorParameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterName", + "ParameterValue" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.RedshiftDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "ClusterJDBCURL": { + "type": "string" + }, + "CopyCommand": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CopyCommand" + }, + "Password": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.RedshiftRetryOptions" + }, + "RoleARN": { + "type": "string" + }, + "S3BackupConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "ClusterJDBCURL", + "CopyCommand", + "Password", + "RoleARN", + "S3Configuration", + "Username" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.RedshiftRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.RetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration": { + "additionalProperties": false, + "properties": { + "BucketARN": { + "type": "string" + }, + "BufferingHints": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.BufferingHints" + }, + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "CompressionFormat": { + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.EncryptionConfiguration" + }, + "ErrorOutputPrefix": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "RoleARN": { + "type": "string" + } + }, + "required": [ + "BucketARN", + "RoleARN" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.SchemaConfiguration": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "RoleARN": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.Serializer": { + "additionalProperties": false, + "properties": { + "OrcSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.OrcSerDe" + }, + "ParquetSerDe": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ParquetSerDe" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.SplunkDestinationConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLoggingOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.CloudWatchLoggingOptions" + }, + "HECAcknowledgmentTimeoutInSeconds": { + "type": "number" + }, + "HECEndpoint": { + "type": "string" + }, + "HECEndpointType": { + "type": "string" + }, + "HECToken": { + "type": "string" + }, + "ProcessingConfiguration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.ProcessingConfiguration" + }, + "RetryOptions": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions" + }, + "S3BackupMode": { + "type": "string" + }, + "S3Configuration": { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream.S3DestinationConfiguration" + } + }, + "required": [ + "HECEndpoint", + "HECEndpointType", + "HECToken", + "S3Configuration" + ], + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.SplunkRetryOptions": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::KinesisFirehose::DeliveryStream.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "RoleARN": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "RoleARN", + "SecurityGroupIds", + "SubnetIds" + ], + "type": "object" + }, + "AWS::KinesisVideo::SignalingChannel": { + "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": { + "MessageTtlSeconds": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisVideo::SignalingChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::KinesisVideo::Stream": { + "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": { + "DataRetentionInHours": { + "type": "number" + }, + "DeviceName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MediaType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::KinesisVideo::Stream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::LakeFormation::DataCellsFilter": { + "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": { + "ColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ColumnWildcard": { + "$ref": "#/definitions/AWS::LakeFormation::DataCellsFilter.ColumnWildcard" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RowFilter": { + "$ref": "#/definitions/AWS::LakeFormation::DataCellsFilter.RowFilter" + }, + "TableCatalogId": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "DatabaseName", + "Name", + "TableCatalogId", + "TableName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LakeFormation::DataCellsFilter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LakeFormation::DataCellsFilter.ColumnWildcard": { + "additionalProperties": false, + "properties": { + "ExcludedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::LakeFormation::DataCellsFilter.RowFilter": { + "additionalProperties": false, + "properties": { + "AllRowsWildcard": { + "type": "object" + }, + "FilterExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LakeFormation::DataLakeSettings": { + "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": { + "Admins": { + "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings.Admins" + }, + "TrustedResourceOwners": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LakeFormation::DataLakeSettings" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::LakeFormation::DataLakeSettings.Admins": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::LakeFormation::DataLakeSettings.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LakeFormation::Permissions": { + "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": { + "DataLakePrincipal": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.DataLakePrincipal" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PermissionsWithGrantOption": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Resource": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.Resource" + } + }, + "required": [ + "DataLakePrincipal", + "Resource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LakeFormation::Permissions" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LakeFormation::Permissions.ColumnWildcard": { + "additionalProperties": false, + "properties": { + "ExcludedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::LakeFormation::Permissions.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LakeFormation::Permissions.DataLocationResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "S3Resource": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LakeFormation::Permissions.DatabaseResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LakeFormation::Permissions.Resource": { + "additionalProperties": false, + "properties": { + "DataLocationResource": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.DataLocationResource" + }, + "DatabaseResource": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.DatabaseResource" + }, + "TableResource": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.TableResource" + }, + "TableWithColumnsResource": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.TableWithColumnsResource" + } + }, + "type": "object" + }, + "AWS::LakeFormation::Permissions.TableResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "TableWildcard": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.TableWildcard" + } + }, + "type": "object" + }, + "AWS::LakeFormation::Permissions.TableWildcard": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::LakeFormation::Permissions.TableWithColumnsResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "ColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ColumnWildcard": { + "$ref": "#/definitions/AWS::LakeFormation::Permissions.ColumnWildcard" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions": { + "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": { + "Catalog": { + "type": "string" + }, + "Permissions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PermissionsWithGrantOption": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DataLakePrincipal" + }, + "Resource": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.Resource" + } + }, + "required": [ + "Permissions", + "PermissionsWithGrantOption", + "Principal", + "Resource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LakeFormation::PrincipalPermissions" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.ColumnWildcard": { + "additionalProperties": false, + "properties": { + "ExcludedColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.DataCellsFilterResource": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "TableCatalogId": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "DatabaseName", + "Name", + "TableCatalogId", + "TableName" + ], + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.DataLakePrincipal": { + "additionalProperties": false, + "properties": { + "DataLakePrincipalIdentifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.DataLocationResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "ResourceArn" + ], + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.DatabaseResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "Name" + ], + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.LFTag": { + "additionalProperties": false, + "properties": { + "TagKey": { + "type": "string" + }, + "TagValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.LFTagKeyResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "TagKey": { + "type": "string" + }, + "TagValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CatalogId", + "TagKey", + "TagValues" + ], + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.LFTagPolicyResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "Expression": { + "items": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.LFTag" + }, + "type": "array" + }, + "ResourceType": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "Expression", + "ResourceType" + ], + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.Resource": { + "additionalProperties": false, + "properties": { + "Catalog": { + "type": "object" + }, + "DataCellsFilter": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DataCellsFilterResource" + }, + "DataLocation": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DataLocationResource" + }, + "Database": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.DatabaseResource" + }, + "LFTag": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.LFTagKeyResource" + }, + "LFTagPolicy": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.LFTagPolicyResource" + }, + "Table": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.TableResource" + }, + "TableWithColumns": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.TableWithColumnsResource" + } + }, + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.TableResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "TableWildcard": { + "type": "object" + } + }, + "required": [ + "CatalogId", + "DatabaseName" + ], + "type": "object" + }, + "AWS::LakeFormation::PrincipalPermissions.TableWithColumnsResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "ColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ColumnWildcard": { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions.ColumnWildcard" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "DatabaseName", + "Name" + ], + "type": "object" + }, + "AWS::LakeFormation::Resource": { + "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": { + "ResourceArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UseServiceLinkedRole": { + "type": "boolean" + } + }, + "required": [ + "ResourceArn", + "UseServiceLinkedRole" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LakeFormation::Resource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LakeFormation::Tag": { + "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": { + "CatalogId": { + "type": "string" + }, + "TagKey": { + "type": "string" + }, + "TagValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "TagKey", + "TagValues" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LakeFormation::Tag" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LakeFormation::TagAssociation": { + "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": { + "LFTags": { + "items": { + "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.LFTagPair" + }, + "type": "array" + }, + "Resource": { + "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.Resource" + } + }, + "required": [ + "LFTags", + "Resource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LakeFormation::TagAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LakeFormation::TagAssociation.DatabaseResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "Name" + ], + "type": "object" + }, + "AWS::LakeFormation::TagAssociation.LFTagPair": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "TagKey": { + "type": "string" + }, + "TagValues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "CatalogId", + "TagKey", + "TagValues" + ], + "type": "object" + }, + "AWS::LakeFormation::TagAssociation.Resource": { + "additionalProperties": false, + "properties": { + "Catalog": { + "type": "object" + }, + "Database": { + "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.DatabaseResource" + }, + "Table": { + "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.TableResource" + }, + "TableWithColumns": { + "$ref": "#/definitions/AWS::LakeFormation::TagAssociation.TableWithColumnsResource" + } + }, + "type": "object" + }, + "AWS::LakeFormation::TagAssociation.TableResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "TableWildcard": { + "type": "object" + } + }, + "required": [ + "CatalogId", + "DatabaseName" + ], + "type": "object" + }, + "AWS::LakeFormation::TagAssociation.TableWithColumnsResource": { + "additionalProperties": false, + "properties": { + "CatalogId": { + "type": "string" + }, + "ColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DatabaseName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "CatalogId", + "ColumnNames", + "DatabaseName", + "Name" + ], + "type": "object" + }, + "AWS::Lambda::Alias": { + "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": { + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionVersion": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/AWS::Lambda::Alias.ProvisionedConcurrencyConfiguration" + }, + "RoutingConfig": { + "$ref": "#/definitions/AWS::Lambda::Alias.AliasRoutingConfiguration" + } + }, + "required": [ + "FunctionName", + "FunctionVersion", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::Alias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::Alias.AliasRoutingConfiguration": { + "additionalProperties": false, + "properties": { + "AdditionalVersionWeights": { + "items": { + "$ref": "#/definitions/AWS::Lambda::Alias.VersionWeight" + }, + "type": "array" + } + }, + "required": [ + "AdditionalVersionWeights" + ], + "type": "object" + }, + "AWS::Lambda::Alias.ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "number" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "AWS::Lambda::Alias.VersionWeight": { + "additionalProperties": false, + "properties": { + "FunctionVersion": { + "type": "string" + }, + "FunctionWeight": { + "type": "number" + } + }, + "required": [ + "FunctionVersion", + "FunctionWeight" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig": { + "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": { + "AllowedPublishers": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.AllowedPublishers" + }, + "CodeSigningPolicies": { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig.CodeSigningPolicies" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "AllowedPublishers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::CodeSigningConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.AllowedPublishers": { + "additionalProperties": false, + "properties": { + "SigningProfileVersionArns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SigningProfileVersionArns" + ], + "type": "object" + }, + "AWS::Lambda::CodeSigningConfig.CodeSigningPolicies": { + "additionalProperties": false, + "properties": { + "UntrustedArtifactOnDeployment": { + "type": "string" + } + }, + "required": [ + "UntrustedArtifactOnDeployment" + ], + "type": "object" + }, + "AWS::Lambda::EventInvokeConfig": { + "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": { + "DestinationConfig": { + "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig.DestinationConfig" + }, + "FunctionName": { + "type": "string" + }, + "MaximumEventAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + }, + "Qualifier": { + "type": "string" + } + }, + "required": [ + "FunctionName", + "Qualifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::EventInvokeConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::EventInvokeConfig.DestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig.OnFailure" + }, + "OnSuccess": { + "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig.OnSuccess" + } + }, + "type": "object" + }, + "AWS::Lambda::EventInvokeConfig.OnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "AWS::Lambda::EventInvokeConfig.OnSuccess": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "AWS::Lambda::EventSourceMapping": { + "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": { + "AmazonManagedKafkaEventSourceConfig": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.AmazonManagedKafkaEventSourceConfig" + }, + "BatchSize": { + "type": "number" + }, + "BisectBatchOnFunctionError": { + "type": "boolean" + }, + "DestinationConfig": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.DestinationConfig" + }, + "Enabled": { + "type": "boolean" + }, + "EventSourceArn": { + "type": "string" + }, + "FilterCriteria": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.FilterCriteria" + }, + "FunctionName": { + "type": "string" + }, + "FunctionResponseTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + }, + "MaximumRecordAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + }, + "ParallelizationFactor": { + "type": "number" + }, + "Queues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ScalingConfig": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.ScalingConfig" + }, + "SelfManagedEventSource": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SelfManagedEventSource" + }, + "SelfManagedKafkaEventSourceConfig": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SelfManagedKafkaEventSourceConfig" + }, + "SourceAccessConfigurations": { + "items": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.SourceAccessConfiguration" + }, + "type": "array" + }, + "StartingPosition": { + "type": "string" + }, + "StartingPositionTimestamp": { + "type": "number" + }, + "Topics": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TumblingWindowInSeconds": { + "type": "number" + } + }, + "required": [ + "FunctionName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::EventSourceMapping" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.AmazonManagedKafkaEventSourceConfig": { + "additionalProperties": false, + "properties": { + "ConsumerGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.DestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.OnFailure" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.Endpoints": { + "additionalProperties": false, + "properties": { + "KafkaBootstrapServers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.Filter": { + "additionalProperties": false, + "properties": { + "Pattern": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.FilterCriteria": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.Filter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.OnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.ScalingConfig": { + "additionalProperties": false, + "properties": { + "MaximumConcurrency": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.SelfManagedEventSource": { + "additionalProperties": false, + "properties": { + "Endpoints": { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping.Endpoints" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.SelfManagedKafkaEventSourceConfig": { + "additionalProperties": false, + "properties": { + "ConsumerGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::EventSourceMapping.SourceAccessConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "URI": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::Function": { + "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": { + "Architectures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Code": { + "$ref": "#/definitions/AWS::Lambda::Function.Code" + }, + "CodeSigningConfigArn": { + "type": "string" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Lambda::Function.DeadLetterConfig" + }, + "Description": { + "type": "string" + }, + "Environment": { + "$ref": "#/definitions/AWS::Lambda::Function.Environment" + }, + "EphemeralStorage": { + "$ref": "#/definitions/AWS::Lambda::Function.EphemeralStorage" + }, + "FileSystemConfigs": { + "items": { + "$ref": "#/definitions/AWS::Lambda::Function.FileSystemConfig" + }, + "type": "array" + }, + "FunctionName": { + "type": "string" + }, + "Handler": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/AWS::Lambda::Function.ImageConfig" + }, + "KmsKeyArn": { + "type": "string" + }, + "Layers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MemorySize": { + "type": "number" + }, + "PackageType": { + "type": "string" + }, + "ReservedConcurrentExecutions": { + "type": "number" + }, + "Role": { + "type": "string" + }, + "Runtime": { + "type": "string" + }, + "SnapStart": { + "$ref": "#/definitions/AWS::Lambda::Function.SnapStart" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Timeout": { + "type": "number" + }, + "TracingConfig": { + "$ref": "#/definitions/AWS::Lambda::Function.TracingConfig" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::Lambda::Function.VpcConfig" + } + }, + "required": [ + "Code", + "Role" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::Function" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::Function.Code": { + "additionalProperties": false, + "properties": { + "ImageUri": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + }, + "ZipFile": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::Function.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "TargetArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::Function.Environment": { + "additionalProperties": false, + "properties": { + "Variables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Lambda::Function.EphemeralStorage": { + "additionalProperties": false, + "properties": { + "Size": { + "type": "number" + } + }, + "required": [ + "Size" + ], + "type": "object" + }, + "AWS::Lambda::Function.FileSystemConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "LocalMountPath": { + "type": "string" + } + }, + "required": [ + "Arn", + "LocalMountPath" + ], + "type": "object" + }, + "AWS::Lambda::Function.ImageConfig": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EntryPoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WorkingDirectory": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::Function.SnapStart": { + "additionalProperties": false, + "properties": { + "ApplyOn": { + "type": "string" + } + }, + "required": [ + "ApplyOn" + ], + "type": "object" + }, + "AWS::Lambda::Function.SnapStartResponse": { + "additionalProperties": false, + "properties": { + "ApplyOn": { + "type": "string" + }, + "OptimizationStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::Function.TracingConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lambda::Function.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lambda::LayerVersion": { + "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": { + "CompatibleArchitectures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CompatibleRuntimes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Content": { + "$ref": "#/definitions/AWS::Lambda::LayerVersion.Content" + }, + "Description": { + "type": "string" + }, + "LayerName": { + "type": "string" + }, + "LicenseInfo": { + "type": "string" + } + }, + "required": [ + "Content" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersion.Content": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::Lambda::LayerVersionPermission": { + "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": { + "Action": { + "type": "string" + }, + "LayerVersionArn": { + "type": "string" + }, + "OrganizationId": { + "type": "string" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Action", + "LayerVersionArn", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::LayerVersionPermission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::Permission": { + "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": { + "Action": { + "type": "string" + }, + "EventSourceToken": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "FunctionUrlAuthType": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "PrincipalOrgID": { + "type": "string" + }, + "SourceAccount": { + "type": "string" + }, + "SourceArn": { + "type": "string" + } + }, + "required": [ + "Action", + "FunctionName", + "Principal" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::Permission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::Url": { + "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": { + "AuthType": { + "type": "string" + }, + "Cors": { + "$ref": "#/definitions/AWS::Lambda::Url.Cors" + }, + "InvokeMode": { + "type": "string" + }, + "Qualifier": { + "type": "string" + }, + "TargetFunctionArn": { + "type": "string" + } + }, + "required": [ + "AuthType", + "TargetFunctionArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::Url" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::Url.Cors": { + "additionalProperties": false, + "properties": { + "AllowCredentials": { + "type": "boolean" + }, + "AllowHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAge": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lambda::Version": { + "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": { + "CodeSha256": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FunctionName": { + "type": "string" + }, + "ProvisionedConcurrencyConfig": { + "$ref": "#/definitions/AWS::Lambda::Version.ProvisionedConcurrencyConfiguration" + } + }, + "required": [ + "FunctionName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lambda::Version" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lambda::Version.ProvisionedConcurrencyConfiguration": { + "additionalProperties": false, + "properties": { + "ProvisionedConcurrentExecutions": { + "type": "number" + } + }, + "required": [ + "ProvisionedConcurrentExecutions" + ], + "type": "object" + }, + "AWS::Lex::Bot": { + "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": { + "AutoBuildBotLocales": { + "type": "boolean" + }, + "BotFileS3Location": { + "$ref": "#/definitions/AWS::Lex::Bot.S3Location" + }, + "BotLocales": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.BotLocale" + }, + "type": "array" + }, + "BotTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "DataPrivacy": { + "$ref": "#/definitions/AWS::Lex::Bot.DataPrivacy" + }, + "Description": { + "type": "string" + }, + "IdleSessionTTLInSeconds": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TestBotAliasSettings": { + "$ref": "#/definitions/AWS::Lex::Bot.TestBotAliasSettings" + }, + "TestBotAliasTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataPrivacy", + "IdleSessionTTLInSeconds", + "Name", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lex::Bot" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lex::Bot.AdvancedRecognitionSetting": { + "additionalProperties": false, + "properties": { + "AudioRecognitionStrategy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.AllowedInputTypes": { + "additionalProperties": false, + "properties": { + "AllowAudioInput": { + "type": "boolean" + }, + "AllowDTMFInput": { + "type": "boolean" + } + }, + "required": [ + "AllowAudioInput", + "AllowDTMFInput" + ], + "type": "object" + }, + "AWS::Lex::Bot.AudioAndDTMFInputSpecification": { + "additionalProperties": false, + "properties": { + "AudioSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.AudioSpecification" + }, + "DTMFSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.DTMFSpecification" + }, + "StartTimeoutMs": { + "type": "number" + } + }, + "required": [ + "StartTimeoutMs" + ], + "type": "object" + }, + "AWS::Lex::Bot.AudioLogDestination": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "$ref": "#/definitions/AWS::Lex::Bot.S3BucketLogDestination" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "AWS::Lex::Bot.AudioLogSetting": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::Lex::Bot.AudioLogDestination" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Destination", + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::Bot.AudioSpecification": { + "additionalProperties": false, + "properties": { + "EndTimeoutMs": { + "type": "number" + }, + "MaxLengthMs": { + "type": "number" + } + }, + "required": [ + "EndTimeoutMs", + "MaxLengthMs" + ], + "type": "object" + }, + "AWS::Lex::Bot.BotAliasLocaleSettings": { + "additionalProperties": false, + "properties": { + "CodeHookSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.CodeHookSpecification" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::Bot.BotAliasLocaleSettingsItem": { + "additionalProperties": false, + "properties": { + "BotAliasLocaleSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.BotAliasLocaleSettings" + }, + "LocaleId": { + "type": "string" + } + }, + "required": [ + "BotAliasLocaleSetting", + "LocaleId" + ], + "type": "object" + }, + "AWS::Lex::Bot.BotLocale": { + "additionalProperties": false, + "properties": { + "CustomVocabulary": { + "$ref": "#/definitions/AWS::Lex::Bot.CustomVocabulary" + }, + "Description": { + "type": "string" + }, + "Intents": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.Intent" + }, + "type": "array" + }, + "LocaleId": { + "type": "string" + }, + "NluConfidenceThreshold": { + "type": "number" + }, + "SlotTypes": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotType" + }, + "type": "array" + }, + "VoiceSettings": { + "$ref": "#/definitions/AWS::Lex::Bot.VoiceSettings" + } + }, + "required": [ + "LocaleId", + "NluConfidenceThreshold" + ], + "type": "object" + }, + "AWS::Lex::Bot.Button": { + "additionalProperties": false, + "properties": { + "Text": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Text", + "Value" + ], + "type": "object" + }, + "AWS::Lex::Bot.CloudWatchLogGroupLogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchLogGroupArn": { + "type": "string" + }, + "LogPrefix": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogGroupArn", + "LogPrefix" + ], + "type": "object" + }, + "AWS::Lex::Bot.CodeHookSpecification": { + "additionalProperties": false, + "properties": { + "LambdaCodeHook": { + "$ref": "#/definitions/AWS::Lex::Bot.LambdaCodeHook" + } + }, + "required": [ + "LambdaCodeHook" + ], + "type": "object" + }, + "AWS::Lex::Bot.ConversationLogSettings": { + "additionalProperties": false, + "properties": { + "AudioLogSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.AudioLogSetting" + }, + "type": "array" + }, + "TextLogSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.TextLogSetting" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.CustomPayload": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::Lex::Bot.CustomVocabulary": { + "additionalProperties": false, + "properties": { + "CustomVocabularyItems": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.CustomVocabularyItem" + }, + "type": "array" + } + }, + "required": [ + "CustomVocabularyItems" + ], + "type": "object" + }, + "AWS::Lex::Bot.CustomVocabularyItem": { + "additionalProperties": false, + "properties": { + "Phrase": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Phrase" + ], + "type": "object" + }, + "AWS::Lex::Bot.DTMFSpecification": { + "additionalProperties": false, + "properties": { + "DeletionCharacter": { + "type": "string" + }, + "EndCharacter": { + "type": "string" + }, + "EndTimeoutMs": { + "type": "number" + }, + "MaxLength": { + "type": "number" + } + }, + "required": [ + "DeletionCharacter", + "EndCharacter", + "EndTimeoutMs", + "MaxLength" + ], + "type": "object" + }, + "AWS::Lex::Bot.DataPrivacy": { + "additionalProperties": false, + "properties": { + "ChildDirected": { + "type": "boolean" + } + }, + "required": [ + "ChildDirected" + ], + "type": "object" + }, + "AWS::Lex::Bot.DialogCodeHookSetting": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::Bot.ExternalSourceSetting": { + "additionalProperties": false, + "properties": { + "GrammarSlotTypeSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.GrammarSlotTypeSetting" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.FulfillmentCodeHookSetting": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "FulfillmentUpdatesSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentUpdatesSpecification" + }, + "PostFulfillmentStatusSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.PostFulfillmentStatusSpecification" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::Bot.FulfillmentStartResponseSpecification": { + "additionalProperties": false, + "properties": { + "AllowInterrupt": { + "type": "boolean" + }, + "DelayInSeconds": { + "type": "number" + }, + "MessageGroups": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup" + }, + "type": "array" + } + }, + "required": [ + "DelayInSeconds", + "MessageGroups" + ], + "type": "object" + }, + "AWS::Lex::Bot.FulfillmentUpdateResponseSpecification": { + "additionalProperties": false, + "properties": { + "AllowInterrupt": { + "type": "boolean" + }, + "FrequencyInSeconds": { + "type": "number" + }, + "MessageGroups": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup" + }, + "type": "array" + } + }, + "required": [ + "FrequencyInSeconds", + "MessageGroups" + ], + "type": "object" + }, + "AWS::Lex::Bot.FulfillmentUpdatesSpecification": { + "additionalProperties": false, + "properties": { + "Active": { + "type": "boolean" + }, + "StartResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentStartResponseSpecification" + }, + "TimeoutInSeconds": { + "type": "number" + }, + "UpdateResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentUpdateResponseSpecification" + } + }, + "required": [ + "Active" + ], + "type": "object" + }, + "AWS::Lex::Bot.GrammarSlotTypeSetting": { + "additionalProperties": false, + "properties": { + "Source": { + "$ref": "#/definitions/AWS::Lex::Bot.GrammarSlotTypeSource" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.GrammarSlotTypeSource": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "type": "string" + }, + "S3BucketName": { + "type": "string" + }, + "S3ObjectKey": { + "type": "string" + } + }, + "required": [ + "S3BucketName", + "S3ObjectKey" + ], + "type": "object" + }, + "AWS::Lex::Bot.ImageResponseCard": { + "additionalProperties": false, + "properties": { + "Buttons": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.Button" + }, + "type": "array" + }, + "ImageUrl": { + "type": "string" + }, + "Subtitle": { + "type": "string" + }, + "Title": { + "type": "string" + } + }, + "required": [ + "Title" + ], + "type": "object" + }, + "AWS::Lex::Bot.InputContext": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Lex::Bot.Intent": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DialogCodeHook": { + "$ref": "#/definitions/AWS::Lex::Bot.DialogCodeHookSetting" + }, + "FulfillmentCodeHook": { + "$ref": "#/definitions/AWS::Lex::Bot.FulfillmentCodeHookSetting" + }, + "InputContexts": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.InputContext" + }, + "type": "array" + }, + "IntentClosingSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.IntentClosingSetting" + }, + "IntentConfirmationSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.IntentConfirmationSetting" + }, + "KendraConfiguration": { + "$ref": "#/definitions/AWS::Lex::Bot.KendraConfiguration" + }, + "Name": { + "type": "string" + }, + "OutputContexts": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.OutputContext" + }, + "type": "array" + }, + "ParentIntentSignature": { + "type": "string" + }, + "SampleUtterances": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.SampleUtterance" + }, + "type": "array" + }, + "SlotPriorities": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotPriority" + }, + "type": "array" + }, + "Slots": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.Slot" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Lex::Bot.IntentClosingSetting": { + "additionalProperties": false, + "properties": { + "ClosingResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + }, + "IsActive": { + "type": "boolean" + } + }, + "required": [ + "ClosingResponse" + ], + "type": "object" + }, + "AWS::Lex::Bot.IntentConfirmationSetting": { + "additionalProperties": false, + "properties": { + "DeclinationResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + }, + "IsActive": { + "type": "boolean" + }, + "PromptSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.PromptSpecification" + } + }, + "required": [ + "DeclinationResponse", + "PromptSpecification" + ], + "type": "object" + }, + "AWS::Lex::Bot.KendraConfiguration": { + "additionalProperties": false, + "properties": { + "KendraIndex": { + "type": "string" + }, + "QueryFilterString": { + "type": "string" + }, + "QueryFilterStringEnabled": { + "type": "boolean" + } + }, + "required": [ + "KendraIndex" + ], + "type": "object" + }, + "AWS::Lex::Bot.LambdaCodeHook": { + "additionalProperties": false, + "properties": { + "CodeHookInterfaceVersion": { + "type": "string" + }, + "LambdaArn": { + "type": "string" + } + }, + "required": [ + "CodeHookInterfaceVersion", + "LambdaArn" + ], + "type": "object" + }, + "AWS::Lex::Bot.Message": { + "additionalProperties": false, + "properties": { + "CustomPayload": { + "$ref": "#/definitions/AWS::Lex::Bot.CustomPayload" + }, + "ImageResponseCard": { + "$ref": "#/definitions/AWS::Lex::Bot.ImageResponseCard" + }, + "PlainTextMessage": { + "$ref": "#/definitions/AWS::Lex::Bot.PlainTextMessage" + }, + "SSMLMessage": { + "$ref": "#/definitions/AWS::Lex::Bot.SSMLMessage" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.MessageGroup": { + "additionalProperties": false, + "properties": { + "Message": { + "$ref": "#/definitions/AWS::Lex::Bot.Message" + }, + "Variations": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.Message" + }, + "type": "array" + } + }, + "required": [ + "Message" + ], + "type": "object" + }, + "AWS::Lex::Bot.MultipleValuesSetting": { + "additionalProperties": false, + "properties": { + "AllowMultipleValues": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.ObfuscationSetting": { + "additionalProperties": false, + "properties": { + "ObfuscationSettingType": { + "type": "string" + } + }, + "required": [ + "ObfuscationSettingType" + ], + "type": "object" + }, + "AWS::Lex::Bot.OutputContext": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "TimeToLiveInSeconds": { + "type": "number" + }, + "TurnsToLive": { + "type": "number" + } + }, + "required": [ + "Name", + "TimeToLiveInSeconds", + "TurnsToLive" + ], + "type": "object" + }, + "AWS::Lex::Bot.PlainTextMessage": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::Lex::Bot.PostFulfillmentStatusSpecification": { + "additionalProperties": false, + "properties": { + "FailureResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + }, + "SuccessResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + }, + "TimeoutResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.PromptAttemptSpecification": { + "additionalProperties": false, + "properties": { + "AllowInterrupt": { + "type": "boolean" + }, + "AllowedInputTypes": { + "$ref": "#/definitions/AWS::Lex::Bot.AllowedInputTypes" + }, + "AudioAndDTMFInputSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.AudioAndDTMFInputSpecification" + }, + "TextInputSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.TextInputSpecification" + } + }, + "required": [ + "AllowedInputTypes" + ], + "type": "object" + }, + "AWS::Lex::Bot.PromptSpecification": { + "additionalProperties": false, + "properties": { + "AllowInterrupt": { + "type": "boolean" + }, + "MaxRetries": { + "type": "number" + }, + "MessageGroupsList": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup" + }, + "type": "array" + }, + "MessageSelectionStrategy": { + "type": "string" + }, + "PromptAttemptsSpecification": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Lex::Bot.PromptAttemptSpecification" + } + }, + "type": "object" + } + }, + "required": [ + "MaxRetries", + "MessageGroupsList" + ], + "type": "object" + }, + "AWS::Lex::Bot.ResponseSpecification": { + "additionalProperties": false, + "properties": { + "AllowInterrupt": { + "type": "boolean" + }, + "MessageGroupsList": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup" + }, + "type": "array" + } + }, + "required": [ + "MessageGroupsList" + ], + "type": "object" + }, + "AWS::Lex::Bot.S3BucketLogDestination": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "type": "string" + }, + "LogPrefix": { + "type": "string" + }, + "S3BucketArn": { + "type": "string" + } + }, + "required": [ + "LogPrefix", + "S3BucketArn" + ], + "type": "object" + }, + "AWS::Lex::Bot.S3Location": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "type": "string" + }, + "S3ObjectKey": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3ObjectKey" + ], + "type": "object" + }, + "AWS::Lex::Bot.SSMLMessage": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::Lex::Bot.SampleUtterance": { + "additionalProperties": false, + "properties": { + "Utterance": { + "type": "string" + } + }, + "required": [ + "Utterance" + ], + "type": "object" + }, + "AWS::Lex::Bot.SampleValue": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::Lex::Bot.SentimentAnalysisSettings": { + "additionalProperties": false, + "properties": { + "DetectSentiment": { + "type": "boolean" + } + }, + "required": [ + "DetectSentiment" + ], + "type": "object" + }, + "AWS::Lex::Bot.Slot": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "MultipleValuesSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.MultipleValuesSetting" + }, + "Name": { + "type": "string" + }, + "ObfuscationSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.ObfuscationSetting" + }, + "SlotTypeName": { + "type": "string" + }, + "ValueElicitationSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotValueElicitationSetting" + } + }, + "required": [ + "Name", + "SlotTypeName", + "ValueElicitationSetting" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotDefaultValue": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "string" + } + }, + "required": [ + "DefaultValue" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotDefaultValueSpecification": { + "additionalProperties": false, + "properties": { + "DefaultValueList": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotDefaultValue" + }, + "type": "array" + } + }, + "required": [ + "DefaultValueList" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotPriority": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "SlotName": { + "type": "string" + } + }, + "required": [ + "Priority", + "SlotName" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotType": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "ExternalSourceSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.ExternalSourceSetting" + }, + "Name": { + "type": "string" + }, + "ParentSlotTypeSignature": { + "type": "string" + }, + "SlotTypeValues": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotTypeValue" + }, + "type": "array" + }, + "ValueSelectionSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotValueSelectionSetting" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotTypeValue": { + "additionalProperties": false, + "properties": { + "SampleValue": { + "$ref": "#/definitions/AWS::Lex::Bot.SampleValue" + }, + "Synonyms": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.SampleValue" + }, + "type": "array" + } + }, + "required": [ + "SampleValue" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotValueElicitationSetting": { + "additionalProperties": false, + "properties": { + "DefaultValueSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotDefaultValueSpecification" + }, + "PromptSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.PromptSpecification" + }, + "SampleUtterances": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.SampleUtterance" + }, + "type": "array" + }, + "SlotConstraint": { + "type": "string" + }, + "WaitAndContinueSpecification": { + "$ref": "#/definitions/AWS::Lex::Bot.WaitAndContinueSpecification" + } + }, + "required": [ + "SlotConstraint" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotValueRegexFilter": { + "additionalProperties": false, + "properties": { + "Pattern": { + "type": "string" + } + }, + "required": [ + "Pattern" + ], + "type": "object" + }, + "AWS::Lex::Bot.SlotValueSelectionSetting": { + "additionalProperties": false, + "properties": { + "AdvancedRecognitionSetting": { + "$ref": "#/definitions/AWS::Lex::Bot.AdvancedRecognitionSetting" + }, + "RegexFilter": { + "$ref": "#/definitions/AWS::Lex::Bot.SlotValueRegexFilter" + }, + "ResolutionStrategy": { + "type": "string" + } + }, + "required": [ + "ResolutionStrategy" + ], + "type": "object" + }, + "AWS::Lex::Bot.StillWaitingResponseSpecification": { + "additionalProperties": false, + "properties": { + "AllowInterrupt": { + "type": "boolean" + }, + "FrequencyInSeconds": { + "type": "number" + }, + "MessageGroupsList": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.MessageGroup" + }, + "type": "array" + }, + "TimeoutInSeconds": { + "type": "number" + } + }, + "required": [ + "FrequencyInSeconds", + "MessageGroupsList", + "TimeoutInSeconds" + ], + "type": "object" + }, + "AWS::Lex::Bot.TestBotAliasSettings": { + "additionalProperties": false, + "properties": { + "BotAliasLocaleSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::Bot.BotAliasLocaleSettingsItem" + }, + "type": "array" + }, + "ConversationLogSettings": { + "$ref": "#/definitions/AWS::Lex::Bot.ConversationLogSettings" + }, + "Description": { + "type": "string" + }, + "SentimentAnalysisSettings": { + "$ref": "#/definitions/AWS::Lex::Bot.SentimentAnalysisSettings" + } + }, + "type": "object" + }, + "AWS::Lex::Bot.TextInputSpecification": { + "additionalProperties": false, + "properties": { + "StartTimeoutMs": { + "type": "number" + } + }, + "required": [ + "StartTimeoutMs" + ], + "type": "object" + }, + "AWS::Lex::Bot.TextLogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatch": { + "$ref": "#/definitions/AWS::Lex::Bot.CloudWatchLogGroupLogDestination" + } + }, + "required": [ + "CloudWatch" + ], + "type": "object" + }, + "AWS::Lex::Bot.TextLogSetting": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::Lex::Bot.TextLogDestination" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Destination", + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::Bot.VoiceSettings": { + "additionalProperties": false, + "properties": { + "Engine": { + "type": "string" + }, + "VoiceId": { + "type": "string" + } + }, + "required": [ + "VoiceId" + ], + "type": "object" + }, + "AWS::Lex::Bot.WaitAndContinueSpecification": { + "additionalProperties": false, + "properties": { + "ContinueResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + }, + "IsActive": { + "type": "boolean" + }, + "StillWaitingResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.StillWaitingResponseSpecification" + }, + "WaitingResponse": { + "$ref": "#/definitions/AWS::Lex::Bot.ResponseSpecification" + } + }, + "required": [ + "ContinueResponse", + "WaitingResponse" + ], + "type": "object" + }, + "AWS::Lex::BotAlias": { + "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": { + "BotAliasLocaleSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettingsItem" + }, + "type": "array" + }, + "BotAliasName": { + "type": "string" + }, + "BotAliasTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "BotId": { + "type": "string" + }, + "BotVersion": { + "type": "string" + }, + "ConversationLogSettings": { + "$ref": "#/definitions/AWS::Lex::BotAlias.ConversationLogSettings" + }, + "Description": { + "type": "string" + }, + "SentimentAnalysisSettings": { + "$ref": "#/definitions/AWS::Lex::BotAlias.SentimentAnalysisSettings" + } + }, + "required": [ + "BotAliasName", + "BotId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lex::BotAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.AudioLogDestination": { + "additionalProperties": false, + "properties": { + "S3Bucket": { + "$ref": "#/definitions/AWS::Lex::BotAlias.S3BucketLogDestination" + } + }, + "required": [ + "S3Bucket" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.AudioLogSetting": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogDestination" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Destination", + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.BotAliasLocaleSettings": { + "additionalProperties": false, + "properties": { + "CodeHookSpecification": { + "$ref": "#/definitions/AWS::Lex::BotAlias.CodeHookSpecification" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.BotAliasLocaleSettingsItem": { + "additionalProperties": false, + "properties": { + "BotAliasLocaleSetting": { + "$ref": "#/definitions/AWS::Lex::BotAlias.BotAliasLocaleSettings" + }, + "LocaleId": { + "type": "string" + } + }, + "required": [ + "BotAliasLocaleSetting", + "LocaleId" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchLogGroupArn": { + "type": "string" + }, + "LogPrefix": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogGroupArn", + "LogPrefix" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.CodeHookSpecification": { + "additionalProperties": false, + "properties": { + "LambdaCodeHook": { + "$ref": "#/definitions/AWS::Lex::BotAlias.LambdaCodeHook" + } + }, + "required": [ + "LambdaCodeHook" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.ConversationLogSettings": { + "additionalProperties": false, + "properties": { + "AudioLogSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::BotAlias.AudioLogSetting" + }, + "type": "array" + }, + "TextLogSettings": { + "items": { + "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogSetting" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lex::BotAlias.LambdaCodeHook": { + "additionalProperties": false, + "properties": { + "CodeHookInterfaceVersion": { + "type": "string" + }, + "LambdaArn": { + "type": "string" + } + }, + "required": [ + "CodeHookInterfaceVersion", + "LambdaArn" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.S3BucketLogDestination": { + "additionalProperties": false, + "properties": { + "KmsKeyArn": { + "type": "string" + }, + "LogPrefix": { + "type": "string" + }, + "S3BucketArn": { + "type": "string" + } + }, + "required": [ + "LogPrefix", + "S3BucketArn" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.SentimentAnalysisSettings": { + "additionalProperties": false, + "properties": { + "DetectSentiment": { + "type": "boolean" + } + }, + "required": [ + "DetectSentiment" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.TextLogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatch": { + "$ref": "#/definitions/AWS::Lex::BotAlias.CloudWatchLogGroupLogDestination" + } + }, + "required": [ + "CloudWatch" + ], + "type": "object" + }, + "AWS::Lex::BotAlias.TextLogSetting": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::Lex::BotAlias.TextLogDestination" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Destination", + "Enabled" + ], + "type": "object" + }, + "AWS::Lex::BotVersion": { + "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": { + "BotId": { + "type": "string" + }, + "BotVersionLocaleSpecification": { + "items": { + "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleSpecification" + }, + "type": "array" + }, + "Description": { + "type": "string" + } + }, + "required": [ + "BotId", + "BotVersionLocaleSpecification" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lex::BotVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lex::BotVersion.BotVersionLocaleDetails": { + "additionalProperties": false, + "properties": { + "SourceBotVersion": { + "type": "string" + } + }, + "required": [ + "SourceBotVersion" + ], + "type": "object" + }, + "AWS::Lex::BotVersion.BotVersionLocaleSpecification": { + "additionalProperties": false, + "properties": { + "BotVersionLocaleDetails": { + "$ref": "#/definitions/AWS::Lex::BotVersion.BotVersionLocaleDetails" + }, + "LocaleId": { + "type": "string" + } + }, + "required": [ + "BotVersionLocaleDetails", + "LocaleId" + ], + "type": "object" + }, + "AWS::Lex::ResourcePolicy": { + "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": { + "Policy": { + "type": "object" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "Policy", + "ResourceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lex::ResourcePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LicenseManager::Grant": { + "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": { + "AllowedOperations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "GrantName": { + "type": "string" + }, + "HomeRegion": { + "type": "string" + }, + "LicenseArn": { + "type": "string" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LicenseManager::Grant" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::LicenseManager::License": { + "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": { + "Beneficiary": { + "type": "string" + }, + "ConsumptionConfiguration": { + "$ref": "#/definitions/AWS::LicenseManager::License.ConsumptionConfiguration" + }, + "Entitlements": { + "items": { + "$ref": "#/definitions/AWS::LicenseManager::License.Entitlement" + }, + "type": "array" + }, + "HomeRegion": { + "type": "string" + }, + "Issuer": { + "$ref": "#/definitions/AWS::LicenseManager::License.IssuerData" + }, + "LicenseMetadata": { + "items": { + "$ref": "#/definitions/AWS::LicenseManager::License.Metadata" + }, + "type": "array" + }, + "LicenseName": { + "type": "string" + }, + "ProductName": { + "type": "string" + }, + "ProductSKU": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Validity": { + "$ref": "#/definitions/AWS::LicenseManager::License.ValidityDateFormat" + } + }, + "required": [ + "ConsumptionConfiguration", + "Entitlements", + "HomeRegion", + "Issuer", + "LicenseName", + "ProductName", + "Validity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LicenseManager::License" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LicenseManager::License.BorrowConfiguration": { + "additionalProperties": false, + "properties": { + "AllowEarlyCheckIn": { + "type": "boolean" + }, + "MaxTimeToLiveInMinutes": { + "type": "number" + } + }, + "required": [ + "AllowEarlyCheckIn", + "MaxTimeToLiveInMinutes" + ], + "type": "object" + }, + "AWS::LicenseManager::License.ConsumptionConfiguration": { + "additionalProperties": false, + "properties": { + "BorrowConfiguration": { + "$ref": "#/definitions/AWS::LicenseManager::License.BorrowConfiguration" + }, + "ProvisionalConfiguration": { + "$ref": "#/definitions/AWS::LicenseManager::License.ProvisionalConfiguration" + }, + "RenewType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LicenseManager::License.Entitlement": { + "additionalProperties": false, + "properties": { + "AllowCheckIn": { + "type": "boolean" + }, + "MaxCount": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Overage": { + "type": "boolean" + }, + "Unit": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Unit" + ], + "type": "object" + }, + "AWS::LicenseManager::License.IssuerData": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SignKey": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::LicenseManager::License.Metadata": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::LicenseManager::License.ProvisionalConfiguration": { + "additionalProperties": false, + "properties": { + "MaxTimeToLiveInMinutes": { + "type": "number" + } + }, + "required": [ + "MaxTimeToLiveInMinutes" + ], + "type": "object" + }, + "AWS::LicenseManager::License.ValidityDateFormat": { + "additionalProperties": false, + "properties": { + "Begin": { + "type": "string" + }, + "End": { + "type": "string" + } + }, + "required": [ + "Begin", + "End" + ], + "type": "object" + }, + "AWS::Lightsail::Alarm": { + "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": { + "AlarmName": { + "type": "string" + }, + "ComparisonOperator": { + "type": "string" + }, + "ContactProtocols": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DatapointsToAlarm": { + "type": "number" + }, + "EvaluationPeriods": { + "type": "number" + }, + "MetricName": { + "type": "string" + }, + "MonitoredResourceName": { + "type": "string" + }, + "NotificationEnabled": { + "type": "boolean" + }, + "NotificationTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Threshold": { + "type": "number" + }, + "TreatMissingData": { + "type": "string" + } + }, + "required": [ + "AlarmName", + "ComparisonOperator", + "EvaluationPeriods", + "MetricName", + "MonitoredResourceName", + "Threshold" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Alarm" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Bucket": { + "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": { + "AccessRules": { + "$ref": "#/definitions/AWS::Lightsail::Bucket.AccessRules" + }, + "BucketName": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "ObjectVersioning": { + "type": "boolean" + }, + "ReadOnlyAccessAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourcesReceivingAccess": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BucketName", + "BundleId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Bucket" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Bucket.AccessRules": { + "additionalProperties": false, + "properties": { + "AllowPublicOverrides": { + "type": "boolean" + }, + "GetObject": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Certificate": { + "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": { + "CertificateName": { + "type": "string" + }, + "DomainName": { + "type": "string" + }, + "SubjectAlternativeNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CertificateName", + "DomainName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Container": { + "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": { + "ContainerServiceDeployment": { + "$ref": "#/definitions/AWS::Lightsail::Container.ContainerServiceDeployment" + }, + "IsDisabled": { + "type": "boolean" + }, + "Power": { + "type": "string" + }, + "PublicDomainNames": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.PublicDomainName" + }, + "type": "array" + }, + "Scale": { + "type": "number" + }, + "ServiceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Power", + "Scale", + "ServiceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Container.Container": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContainerName": { + "type": "string" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.EnvironmentVariable" + }, + "type": "array" + }, + "Image": { + "type": "string" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.PortInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.ContainerServiceDeployment": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Container.Container" + }, + "type": "array" + }, + "PublicEndpoint": { + "$ref": "#/definitions/AWS::Lightsail::Container.PublicEndpoint" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + }, + "Variable": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "HealthyThreshold": { + "type": "number" + }, + "IntervalSeconds": { + "type": "number" + }, + "Path": { + "type": "string" + }, + "SuccessCodes": { + "type": "string" + }, + "TimeoutSeconds": { + "type": "number" + }, + "UnhealthyThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.PortInfo": { + "additionalProperties": false, + "properties": { + "Port": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.PublicDomainName": { + "additionalProperties": false, + "properties": { + "CertificateName": { + "type": "string" + }, + "DomainNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lightsail::Container.PublicEndpoint": { + "additionalProperties": false, + "properties": { + "ContainerName": { + "type": "string" + }, + "ContainerPort": { + "type": "number" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::Lightsail::Container.HealthCheckConfig" + } + }, + "type": "object" + }, + "AWS::Lightsail::Database": { + "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": { + "AvailabilityZone": { + "type": "string" + }, + "BackupRetention": { + "type": "boolean" + }, + "CaCertificateIdentifier": { + "type": "string" + }, + "MasterDatabaseName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "RelationalDatabaseBlueprintId": { + "type": "string" + }, + "RelationalDatabaseBundleId": { + "type": "string" + }, + "RelationalDatabaseName": { + "type": "string" + }, + "RelationalDatabaseParameters": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Database.RelationalDatabaseParameter" + }, + "type": "array" + }, + "RotateMasterUserPassword": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "MasterDatabaseName", + "MasterUsername", + "RelationalDatabaseBlueprintId", + "RelationalDatabaseBundleId", + "RelationalDatabaseName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Database" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Database.RelationalDatabaseParameter": { + "additionalProperties": false, + "properties": { + "AllowedValues": { + "type": "string" + }, + "ApplyMethod": { + "type": "string" + }, + "ApplyType": { + "type": "string" + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IsModifiable": { + "type": "boolean" + }, + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Disk": { + "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": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "SizeInGb": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DiskName", + "SizeInGb" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Disk" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Disk.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Disk.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Disk.Location": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution": { + "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": { + "BundleId": { + "type": "string" + }, + "CacheBehaviorSettings": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheSettings" + }, + "CacheBehaviors": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehaviorPerPath" + }, + "type": "array" + }, + "CertificateName": { + "type": "string" + }, + "DefaultCacheBehavior": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CacheBehavior" + }, + "DistributionName": { + "type": "string" + }, + "IpAddressType": { + "type": "string" + }, + "IsEnabled": { + "type": "boolean" + }, + "Origin": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.InputOrigin" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BundleId", + "DefaultCacheBehavior", + "DistributionName", + "Origin" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Distribution" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Distribution.CacheBehavior": { + "additionalProperties": false, + "properties": { + "Behavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.CacheBehaviorPerPath": { + "additionalProperties": false, + "properties": { + "Behavior": { + "type": "string" + }, + "Path": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.CacheSettings": { + "additionalProperties": false, + "properties": { + "AllowedHTTPMethods": { + "type": "string" + }, + "CachedHTTPMethods": { + "type": "string" + }, + "DefaultTTL": { + "type": "number" + }, + "ForwardedCookies": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.CookieObject" + }, + "ForwardedHeaders": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.HeaderObject" + }, + "ForwardedQueryStrings": { + "$ref": "#/definitions/AWS::Lightsail::Distribution.QueryStringObject" + }, + "MaximumTTL": { + "type": "number" + }, + "MinimumTTL": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.CookieObject": { + "additionalProperties": false, + "properties": { + "CookiesAllowList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Option": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.HeaderObject": { + "additionalProperties": false, + "properties": { + "HeadersAllowList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Option": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.InputOrigin": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "ProtocolPolicy": { + "type": "string" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Distribution.QueryStringObject": { + "additionalProperties": false, + "properties": { + "Option": { + "type": "boolean" + }, + "QueryStringsAllowList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance": { + "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": { + "AddOns": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AddOn" + }, + "type": "array" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlueprintId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Hardware": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Hardware" + }, + "InstanceName": { + "type": "string" + }, + "KeyPairName": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Location" + }, + "Networking": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Networking" + }, + "State": { + "$ref": "#/definitions/AWS::Lightsail::Instance.State" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserData": { + "type": "string" + } + }, + "required": [ + "BlueprintId", + "BundleId", + "InstanceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AddOn": { + "additionalProperties": false, + "properties": { + "AddOnType": { + "type": "string" + }, + "AutoSnapshotAddOnRequest": { + "$ref": "#/definitions/AWS::Lightsail::Instance.AutoSnapshotAddOn" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "AddOnType" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.AutoSnapshotAddOn": { + "additionalProperties": false, + "properties": { + "SnapshotTimeOfDay": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Disk": { + "additionalProperties": false, + "properties": { + "AttachedTo": { + "type": "string" + }, + "AttachmentState": { + "type": "string" + }, + "DiskName": { + "type": "string" + }, + "IOPS": { + "type": "number" + }, + "IsSystemDisk": { + "type": "boolean" + }, + "Path": { + "type": "string" + }, + "SizeInGb": { + "type": "string" + } + }, + "required": [ + "DiskName", + "Path" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Hardware": { + "additionalProperties": false, + "properties": { + "CpuCount": { + "type": "number" + }, + "Disks": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Disk" + }, + "type": "array" + }, + "RamSizeInGb": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Location": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.MonthlyTransfer": { + "additionalProperties": false, + "properties": { + "GbPerMonthAllocated": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.Networking": { + "additionalProperties": false, + "properties": { + "MonthlyTransfer": { + "$ref": "#/definitions/AWS::Lightsail::Instance.MonthlyTransfer" + }, + "Ports": { + "items": { + "$ref": "#/definitions/AWS::Lightsail::Instance.Port" + }, + "type": "array" + } + }, + "required": [ + "Ports" + ], + "type": "object" + }, + "AWS::Lightsail::Instance.Port": { + "additionalProperties": false, + "properties": { + "AccessDirection": { + "type": "string" + }, + "AccessFrom": { + "type": "string" + }, + "AccessType": { + "type": "string" + }, + "CidrListAliases": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CommonName": { + "type": "string" + }, + "FromPort": { + "type": "number" + }, + "Ipv6Cidrs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Protocol": { + "type": "string" + }, + "ToPort": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Lightsail::Instance.State": { + "additionalProperties": false, + "properties": { + "Code": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Lightsail::LoadBalancer": { + "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": { + "AttachedInstances": { + "items": { + "type": "string" + }, + "type": "array" + }, + "HealthCheckPath": { + "type": "string" + }, + "InstancePort": { + "type": "number" + }, + "IpAddressType": { + "type": "string" + }, + "LoadBalancerName": { + "type": "string" + }, + "SessionStickinessEnabled": { + "type": "boolean" + }, + "SessionStickinessLBCookieDurationSeconds": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TlsPolicyName": { + "type": "string" + } + }, + "required": [ + "InstancePort", + "LoadBalancerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::LoadBalancer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::LoadBalancerTlsCertificate": { + "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": { + "CertificateAlternativeNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CertificateDomainName": { + "type": "string" + }, + "CertificateName": { + "type": "string" + }, + "HttpsRedirectionEnabled": { + "type": "boolean" + }, + "IsAttached": { + "type": "boolean" + }, + "LoadBalancerName": { + "type": "string" + } + }, + "required": [ + "CertificateDomainName", + "CertificateName", + "LoadBalancerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::LoadBalancerTlsCertificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Lightsail::StaticIp": { + "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": { + "AttachedTo": { + "type": "string" + }, + "StaticIpName": { + "type": "string" + } + }, + "required": [ + "StaticIpName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Lightsail::StaticIp" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::GeofenceCollection": { + "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": { + "CollectionName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + }, + "PricingPlanDataSource": { + "type": "string" + } + }, + "required": [ + "CollectionName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::GeofenceCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map": { + "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": { + "Configuration": { + "$ref": "#/definitions/AWS::Location::Map.MapConfiguration" + }, + "Description": { + "type": "string" + }, + "MapName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "Configuration", + "MapName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Map" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Map.MapConfiguration": { + "additionalProperties": false, + "properties": { + "Style": { + "type": "string" + } + }, + "required": [ + "Style" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex": { + "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": { + "DataSource": { + "type": "string" + }, + "DataSourceConfiguration": { + "$ref": "#/definitions/AWS::Location::PlaceIndex.DataSourceConfiguration" + }, + "Description": { + "type": "string" + }, + "IndexName": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "DataSource", + "IndexName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::PlaceIndex" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::PlaceIndex.DataSourceConfiguration": { + "additionalProperties": false, + "properties": { + "IntendedUse": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Location::RouteCalculator": { + "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": { + "CalculatorName": { + "type": "string" + }, + "DataSource": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + } + }, + "required": [ + "CalculatorName", + "DataSource" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::RouteCalculator" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::Tracker": { + "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": { + "Description": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "PositionFiltering": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + }, + "PricingPlanDataSource": { + "type": "string" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "TrackerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::Tracker" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Location::TrackerConsumer": { + "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": { + "ConsumerArn": { + "type": "string" + }, + "TrackerName": { + "type": "string" + } + }, + "required": [ + "ConsumerArn", + "TrackerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Location::TrackerConsumer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Logs::Destination": { + "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": { + "DestinationName": { + "type": "string" + }, + "DestinationPolicy": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "TargetArn": { + "type": "string" + } + }, + "required": [ + "DestinationName", + "RoleArn", + "TargetArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Logs::Destination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Logs::LogGroup": { + "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": { + "DataProtectionPolicy": { + "type": "object" + }, + "KmsKeyId": { + "type": "string" + }, + "LogGroupName": { + "type": "string" + }, + "RetentionInDays": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Logs::LogGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Logs::LogStream": { + "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": { + "LogGroupName": { + "type": "string" + }, + "LogStreamName": { + "type": "string" + } + }, + "required": [ + "LogGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Logs::LogStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Logs::MetricFilter": { + "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": { + "FilterName": { + "type": "string" + }, + "FilterPattern": { + "type": "string" + }, + "LogGroupName": { + "type": "string" + }, + "MetricTransformations": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.MetricTransformation" + }, + "type": "array" + } + }, + "required": [ + "FilterPattern", + "LogGroupName", + "MetricTransformations" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Logs::MetricFilter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Logs::MetricFilter.Dimension": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Logs::MetricFilter.MetricTransformation": { + "additionalProperties": false, + "properties": { + "DefaultValue": { + "type": "number" + }, + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Logs::MetricFilter.Dimension" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "MetricNamespace": { + "type": "string" + }, + "MetricValue": { + "type": "string" + }, + "Unit": { + "type": "string" + } + }, + "required": [ + "MetricName", + "MetricNamespace", + "MetricValue" + ], + "type": "object" + }, + "AWS::Logs::QueryDefinition": { + "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": { + "LogGroupNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "QueryString": { + "type": "string" + } + }, + "required": [ + "Name", + "QueryString" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Logs::QueryDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Logs::ResourcePolicy": { + "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": { + "PolicyDocument": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Logs::ResourcePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Logs::SubscriptionFilter": { + "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": { + "DestinationArn": { + "type": "string" + }, + "Distribution": { + "type": "string" + }, + "FilterName": { + "type": "string" + }, + "FilterPattern": { + "type": "string" + }, + "LogGroupName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "DestinationArn", + "FilterPattern", + "LogGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Logs::SubscriptionFilter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LookoutEquipment::InferenceScheduler": { + "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": { + "DataDelayOffsetInMinutes": { + "type": "number" + }, + "DataInputConfiguration": { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataInputConfiguration" + }, + "DataOutputConfiguration": { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.DataOutputConfiguration" + }, + "DataUploadFrequency": { + "type": "string" + }, + "InferenceSchedulerName": { + "type": "string" + }, + "ModelName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "ServerSideKmsKeyId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataInputConfiguration", + "DataOutputConfiguration", + "DataUploadFrequency", + "ModelName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutEquipment::InferenceScheduler" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LookoutEquipment::InferenceScheduler.DataInputConfiguration": { + "additionalProperties": false, + "properties": { + "InferenceInputNameConfiguration": { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.InputNameConfiguration" + }, + "InputTimeZoneOffset": { + "type": "string" + }, + "S3InputConfiguration": { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.S3InputConfiguration" + } + }, + "required": [ + "S3InputConfiguration" + ], + "type": "object" + }, + "AWS::LookoutEquipment::InferenceScheduler.DataOutputConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "S3OutputConfiguration": { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler.S3OutputConfiguration" + } + }, + "required": [ + "S3OutputConfiguration" + ], + "type": "object" + }, + "AWS::LookoutEquipment::InferenceScheduler.InputNameConfiguration": { + "additionalProperties": false, + "properties": { + "ComponentTimestampDelimiter": { + "type": "string" + }, + "TimestampFormat": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LookoutEquipment::InferenceScheduler.S3InputConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::LookoutEquipment::InferenceScheduler.S3OutputConfiguration": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::LookoutMetrics::Alert": { + "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": { + "Action": { + "$ref": "#/definitions/AWS::LookoutMetrics::Alert.Action" + }, + "AlertDescription": { + "type": "string" + }, + "AlertName": { + "type": "string" + }, + "AlertSensitivityThreshold": { + "type": "number" + }, + "AnomalyDetectorArn": { + "type": "string" + } + }, + "required": [ + "Action", + "AlertSensitivityThreshold", + "AnomalyDetectorArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutMetrics::Alert" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LookoutMetrics::Alert.Action": { + "additionalProperties": false, + "properties": { + "LambdaConfiguration": { + "$ref": "#/definitions/AWS::LookoutMetrics::Alert.LambdaConfiguration" + }, + "SNSConfiguration": { + "$ref": "#/definitions/AWS::LookoutMetrics::Alert.SNSConfiguration" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::Alert.LambdaConfiguration": { + "additionalProperties": false, + "properties": { + "LambdaArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "LambdaArn", + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::Alert.SNSConfiguration": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "SnsTopicArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector": { + "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": { + "AnomalyDetectorConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig" + }, + "AnomalyDetectorDescription": { + "type": "string" + }, + "AnomalyDetectorName": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + }, + "MetricSetList": { + "items": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSet" + }, + "type": "array" + } + }, + "required": [ + "AnomalyDetectorConfig", + "MetricSetList" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutMetrics::AnomalyDetector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.AnomalyDetectorConfig": { + "additionalProperties": false, + "properties": { + "AnomalyDetectorFrequency": { + "type": "string" + } + }, + "required": [ + "AnomalyDetectorFrequency" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig": { + "additionalProperties": false, + "properties": { + "FlowName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "FlowName", + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig": { + "additionalProperties": false, + "properties": { + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor": { + "additionalProperties": false, + "properties": { + "Charset": { + "type": "string" + }, + "ContainsHeader": { + "type": "boolean" + }, + "Delimiter": { + "type": "string" + }, + "FileCompression": { + "type": "string" + }, + "HeaderList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "QuoteSymbol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor": { + "additionalProperties": false, + "properties": { + "CsvFormatDescriptor": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CsvFormatDescriptor" + }, + "JsonFormatDescriptor": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.JsonFormatDescriptor": { + "additionalProperties": false, + "properties": { + "Charset": { + "type": "string" + }, + "FileCompression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.Metric": { + "additionalProperties": false, + "properties": { + "AggregationFunction": { + "type": "string" + }, + "MetricName": { + "type": "string" + }, + "Namespace": { + "type": "string" + } + }, + "required": [ + "AggregationFunction", + "MetricName" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.MetricSet": { + "additionalProperties": false, + "properties": { + "DimensionList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MetricList": { + "items": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.Metric" + }, + "type": "array" + }, + "MetricSetDescription": { + "type": "string" + }, + "MetricSetFrequency": { + "type": "string" + }, + "MetricSetName": { + "type": "string" + }, + "MetricSource": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.MetricSource" + }, + "Offset": { + "type": "number" + }, + "TimestampColumn": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.TimestampColumn" + }, + "Timezone": { + "type": "string" + } + }, + "required": [ + "MetricList", + "MetricSetName", + "MetricSource" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.MetricSource": { + "additionalProperties": false, + "properties": { + "AppFlowConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.AppFlowConfig" + }, + "CloudwatchConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.CloudwatchConfig" + }, + "RDSSourceConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig" + }, + "RedshiftSourceConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig" + }, + "S3SourceConfig": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.RDSSourceConfig": { + "additionalProperties": false, + "properties": { + "DBInstanceIdentifier": { + "type": "string" + }, + "DatabaseHost": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DatabasePort": { + "type": "number" + }, + "RoleArn": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration" + } + }, + "required": [ + "DBInstanceIdentifier", + "DatabaseHost", + "DatabaseName", + "DatabasePort", + "RoleArn", + "SecretManagerArn", + "TableName", + "VpcConfiguration" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.RedshiftSourceConfig": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + }, + "DatabaseHost": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DatabasePort": { + "type": "number" + }, + "RoleArn": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "TableName": { + "type": "string" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration" + } + }, + "required": [ + "ClusterIdentifier", + "DatabaseHost", + "DatabaseName", + "DatabasePort", + "RoleArn", + "SecretManagerArn", + "TableName", + "VpcConfiguration" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.S3SourceConfig": { + "additionalProperties": false, + "properties": { + "FileFormatDescriptor": { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector.FileFormatDescriptor" + }, + "HistoricalDataPathList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RoleArn": { + "type": "string" + }, + "TemplatedPathList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "FileFormatDescriptor", + "RoleArn" + ], + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.TimestampColumn": { + "additionalProperties": false, + "properties": { + "ColumnFormat": { + "type": "string" + }, + "ColumnName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::LookoutMetrics::AnomalyDetector.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIdList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIdList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIdList", + "SubnetIdList" + ], + "type": "object" + }, + "AWS::LookoutVision::Project": { + "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": { + "ProjectName": { + "type": "string" + } + }, + "required": [ + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::LookoutVision::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::M2::Application": { + "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": { + "Definition": { + "$ref": "#/definitions/AWS::M2::Application.Definition" + }, + "Description": { + "type": "string" + }, + "EngineType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Definition", + "EngineType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::M2::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::M2::Application.Definition": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "S3Location": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::M2::Environment": { + "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": { + "Description": { + "type": "string" + }, + "EngineType": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "HighAvailabilityConfig": { + "$ref": "#/definitions/AWS::M2::Environment.HighAvailabilityConfig" + }, + "InstanceType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StorageConfigurations": { + "items": { + "$ref": "#/definitions/AWS::M2::Environment.StorageConfiguration" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "EngineType", + "InstanceType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::M2::Environment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::M2::Environment.EfsStorageConfiguration": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "type": "string" + }, + "MountPoint": { + "type": "string" + } + }, + "required": [ + "FileSystemId", + "MountPoint" + ], + "type": "object" + }, + "AWS::M2::Environment.FsxStorageConfiguration": { + "additionalProperties": false, + "properties": { + "FileSystemId": { + "type": "string" + }, + "MountPoint": { + "type": "string" + } + }, + "required": [ + "FileSystemId", + "MountPoint" + ], + "type": "object" + }, + "AWS::M2::Environment.HighAvailabilityConfig": { + "additionalProperties": false, + "properties": { + "DesiredCapacity": { + "type": "number" + } + }, + "required": [ + "DesiredCapacity" + ], + "type": "object" + }, + "AWS::M2::Environment.StorageConfiguration": { + "additionalProperties": false, + "properties": { + "Efs": { + "$ref": "#/definitions/AWS::M2::Environment.EfsStorageConfiguration" + }, + "Fsx": { + "$ref": "#/definitions/AWS::M2::Environment.FsxStorageConfiguration" + } + }, + "type": "object" + }, + "AWS::MSK::BatchScramSecret": { + "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": { + "ClusterArn": { + "type": "string" + }, + "SecretArnList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::BatchScramSecret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::Cluster": { + "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": { + "BrokerNodeGroupInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.BrokerNodeGroupInfo" + }, + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::Cluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "ConfigurationInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.ConfigurationInfo" + }, + "CurrentVersion": { + "type": "string" + }, + "EncryptionInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInfo" + }, + "EnhancedMonitoring": { + "type": "string" + }, + "KafkaVersion": { + "type": "string" + }, + "LoggingInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.LoggingInfo" + }, + "NumberOfBrokerNodes": { + "type": "number" + }, + "OpenMonitoring": { + "$ref": "#/definitions/AWS::MSK::Cluster.OpenMonitoring" + }, + "StorageMode": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "BrokerNodeGroupInfo", + "ClusterName", + "KafkaVersion", + "NumberOfBrokerNodes" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::Cluster.BrokerLogs": { + "additionalProperties": false, + "properties": { + "CloudWatchLogs": { + "$ref": "#/definitions/AWS::MSK::Cluster.CloudWatchLogs" + }, + "Firehose": { + "$ref": "#/definitions/AWS::MSK::Cluster.Firehose" + }, + "S3": { + "$ref": "#/definitions/AWS::MSK::Cluster.S3" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.BrokerNodeGroupInfo": { + "additionalProperties": false, + "properties": { + "BrokerAZDistribution": { + "type": "string" + }, + "ClientSubnets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ConnectivityInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.ConnectivityInfo" + }, + "InstanceType": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StorageInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.StorageInfo" + } + }, + "required": [ + "ClientSubnets", + "InstanceType" + ], + "type": "object" + }, + "AWS::MSK::Cluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::Cluster.Sasl" + }, + "Tls": { + "$ref": "#/definitions/AWS::MSK::Cluster.Tls" + }, + "Unauthenticated": { + "$ref": "#/definitions/AWS::MSK::Cluster.Unauthenticated" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.CloudWatchLogs": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "LogGroup": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.ConfigurationInfo": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "Revision": { + "type": "number" + } + }, + "required": [ + "Arn", + "Revision" + ], + "type": "object" + }, + "AWS::MSK::Cluster.ConnectivityInfo": { + "additionalProperties": false, + "properties": { + "PublicAccess": { + "$ref": "#/definitions/AWS::MSK::Cluster.PublicAccess" + }, + "VpcConnectivity": { + "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivity" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.EBSStorageInfo": { + "additionalProperties": false, + "properties": { + "ProvisionedThroughput": { + "$ref": "#/definitions/AWS::MSK::Cluster.ProvisionedThroughput" + }, + "VolumeSize": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.EncryptionAtRest": { + "additionalProperties": false, + "properties": { + "DataVolumeKMSKeyId": { + "type": "string" + } + }, + "required": [ + "DataVolumeKMSKeyId" + ], + "type": "object" + }, + "AWS::MSK::Cluster.EncryptionInTransit": { + "additionalProperties": false, + "properties": { + "ClientBroker": { + "type": "string" + }, + "InCluster": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.EncryptionInfo": { + "additionalProperties": false, + "properties": { + "EncryptionAtRest": { + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionAtRest" + }, + "EncryptionInTransit": { + "$ref": "#/definitions/AWS::MSK::Cluster.EncryptionInTransit" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Firehose": { + "additionalProperties": false, + "properties": { + "DeliveryStream": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.JmxExporter": { + "additionalProperties": false, + "properties": { + "EnabledInBroker": { + "type": "boolean" + } + }, + "required": [ + "EnabledInBroker" + ], + "type": "object" + }, + "AWS::MSK::Cluster.LoggingInfo": { + "additionalProperties": false, + "properties": { + "BrokerLogs": { + "$ref": "#/definitions/AWS::MSK::Cluster.BrokerLogs" + } + }, + "required": [ + "BrokerLogs" + ], + "type": "object" + }, + "AWS::MSK::Cluster.NodeExporter": { + "additionalProperties": false, + "properties": { + "EnabledInBroker": { + "type": "boolean" + } + }, + "required": [ + "EnabledInBroker" + ], + "type": "object" + }, + "AWS::MSK::Cluster.OpenMonitoring": { + "additionalProperties": false, + "properties": { + "Prometheus": { + "$ref": "#/definitions/AWS::MSK::Cluster.Prometheus" + } + }, + "required": [ + "Prometheus" + ], + "type": "object" + }, + "AWS::MSK::Cluster.Prometheus": { + "additionalProperties": false, + "properties": { + "JmxExporter": { + "$ref": "#/definitions/AWS::MSK::Cluster.JmxExporter" + }, + "NodeExporter": { + "$ref": "#/definitions/AWS::MSK::Cluster.NodeExporter" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.ProvisionedThroughput": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "VolumeThroughput": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.PublicAccess": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.S3": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::Cluster.Iam" + }, + "Scram": { + "$ref": "#/definitions/AWS::MSK::Cluster.Scram" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Scram": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.StorageInfo": { + "additionalProperties": false, + "properties": { + "EBSStorageInfo": { + "$ref": "#/definitions/AWS::MSK::Cluster.EBSStorageInfo" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Tls": { + "additionalProperties": false, + "properties": { + "CertificateAuthorityArnList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.Unauthenticated": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.VpcConnectivity": { + "additionalProperties": false, + "properties": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityClientAuthentication" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.VpcConnectivityClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivitySasl" + }, + "Tls": { + "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityTls" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.VpcConnectivityIam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.VpcConnectivitySasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityIam" + }, + "Scram": { + "$ref": "#/definitions/AWS::MSK::Cluster.VpcConnectivityScram" + } + }, + "type": "object" + }, + "AWS::MSK::Cluster.VpcConnectivityScram": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Cluster.VpcConnectivityTls": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::Configuration": { + "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": { + "Description": { + "type": "string" + }, + "KafkaVersionsList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ServerProperties": { + "type": "string" + } + }, + "required": [ + "Name", + "ServerProperties" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::Configuration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster": { + "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": { + "ClientAuthentication": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.ClientAuthentication" + }, + "ClusterName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "VpcConfigs": { + "items": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.VpcConfig" + }, + "type": "array" + } + }, + "required": [ + "ClientAuthentication", + "ClusterName", + "VpcConfigs" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MSK::ServerlessCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.ClientAuthentication": { + "additionalProperties": false, + "properties": { + "Sasl": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Sasl" + } + }, + "required": [ + "Sasl" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Iam": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "Enabled" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.Sasl": { + "additionalProperties": false, + "properties": { + "Iam": { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster.Iam" + } + }, + "required": [ + "Iam" + ], + "type": "object" + }, + "AWS::MSK::ServerlessCluster.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SubnetIds" + ], + "type": "object" + }, + "AWS::MWAA::Environment": { + "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": { + "AirflowConfigurationOptions": { + "type": "object" + }, + "AirflowVersion": { + "type": "string" + }, + "DagS3Path": { + "type": "string" + }, + "EnvironmentClass": { + "type": "string" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "KmsKey": { + "type": "string" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::MWAA::Environment.LoggingConfiguration" + }, + "MaxWorkers": { + "type": "number" + }, + "MinWorkers": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::MWAA::Environment.NetworkConfiguration" + }, + "PluginsS3ObjectVersion": { + "type": "string" + }, + "PluginsS3Path": { + "type": "string" + }, + "RequirementsS3ObjectVersion": { + "type": "string" + }, + "RequirementsS3Path": { + "type": "string" + }, + "Schedulers": { + "type": "number" + }, + "SourceBucketArn": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "WebserverAccessMode": { + "type": "string" + }, + "WeeklyMaintenanceWindowStart": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MWAA::Environment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MWAA::Environment.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "DagProcessingLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + }, + "SchedulerLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + }, + "TaskLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + }, + "WebserverLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + }, + "WorkerLogs": { + "$ref": "#/definitions/AWS::MWAA::Environment.ModuleLoggingConfiguration" + } + }, + "type": "object" + }, + "AWS::MWAA::Environment.ModuleLoggingConfiguration": { + "additionalProperties": false, + "properties": { + "CloudWatchLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "LogLevel": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MWAA::Environment.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Macie::AllowList": { + "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": { + "Criteria": { + "$ref": "#/definitions/AWS::Macie::AllowList.Criteria" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Criteria", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::AllowList" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Macie::AllowList.Criteria": { + "additionalProperties": false, + "properties": { + "Regex": { + "type": "string" + }, + "S3WordsList": { + "$ref": "#/definitions/AWS::Macie::AllowList.S3WordsList" + } + }, + "type": "object" + }, + "AWS::Macie::AllowList.S3WordsList": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "ObjectKey": { + "type": "string" + } + }, + "required": [ + "BucketName", + "ObjectKey" + ], + "type": "object" + }, + "AWS::Macie::CustomDataIdentifier": { + "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": { + "Description": { + "type": "string" + }, + "IgnoreWords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaximumMatchDistance": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Regex": { + "type": "string" + } + }, + "required": [ + "Name", + "Regex" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::CustomDataIdentifier" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Macie::FindingsFilter": { + "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": { + "Action": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FindingCriteria": { + "$ref": "#/definitions/AWS::Macie::FindingsFilter.FindingCriteria" + }, + "Name": { + "type": "string" + }, + "Position": { + "type": "number" + } + }, + "required": [ + "FindingCriteria", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::FindingsFilter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Macie::FindingsFilter.CriterionAdditionalProperties": { + "additionalProperties": false, + "properties": { + "eq": { + "items": { + "type": "string" + }, + "type": "array" + }, + "gt": { + "type": "number" + }, + "gte": { + "type": "number" + }, + "lt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "neq": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Macie::FindingsFilter.FindingCriteria": { + "additionalProperties": false, + "properties": { + "Criterion": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::Macie::FindingsFilter.CriterionAdditionalProperties" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Macie::FindingsFilter.FindingsFilterListItem": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Macie::Session": { + "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": { + "FindingPublishingFrequency": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Macie::Session" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member": { + "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": { + "InvitationId": { + "type": "string" + }, + "MemberConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberConfiguration" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkConfiguration" + }, + "NetworkId": { + "type": "string" + } + }, + "required": [ + "MemberConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ManagedBlockchain::Member" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy": { + "additionalProperties": false, + "properties": { + "ProposalDurationInHours": { + "type": "number" + }, + "ThresholdComparator": { + "type": "string" + }, + "ThresholdPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ManagedBlockchain::Member.MemberConfiguration": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "MemberFrameworkConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.MemberFabricConfiguration": { + "additionalProperties": false, + "properties": { + "AdminPassword": { + "type": "string" + }, + "AdminUsername": { + "type": "string" + } + }, + "required": [ + "AdminPassword", + "AdminUsername" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.MemberFrameworkConfiguration": { + "additionalProperties": false, + "properties": { + "MemberFabricConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.MemberFabricConfiguration" + } + }, + "type": "object" + }, + "AWS::ManagedBlockchain::Member.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Framework": { + "type": "string" + }, + "FrameworkVersion": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NetworkFrameworkConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration" + }, + "VotingPolicy": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.VotingPolicy" + } + }, + "required": [ + "Framework", + "FrameworkVersion", + "Name", + "VotingPolicy" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.NetworkFabricConfiguration": { + "additionalProperties": false, + "properties": { + "Edition": { + "type": "string" + } + }, + "required": [ + "Edition" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Member.NetworkFrameworkConfiguration": { + "additionalProperties": false, + "properties": { + "NetworkFabricConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.NetworkFabricConfiguration" + } + }, + "type": "object" + }, + "AWS::ManagedBlockchain::Member.VotingPolicy": { + "additionalProperties": false, + "properties": { + "ApprovalThresholdPolicy": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member.ApprovalThresholdPolicy" + } + }, + "type": "object" + }, + "AWS::ManagedBlockchain::Node": { + "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": { + "MemberId": { + "type": "string" + }, + "NetworkId": { + "type": "string" + }, + "NodeConfiguration": { + "$ref": "#/definitions/AWS::ManagedBlockchain::Node.NodeConfiguration" + } + }, + "required": [ + "NetworkId", + "NodeConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ManagedBlockchain::Node" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ManagedBlockchain::Node.NodeConfiguration": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "InstanceType": { + "type": "string" + } + }, + "required": [ + "AvailabilityZone", + "InstanceType" + ], + "type": "object" + }, + "AWS::MediaConnect::Flow": { + "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": { + "AvailabilityZone": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.Source" + }, + "SourceFailoverConfig": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.FailoverConfig" + } + }, + "required": [ + "Name", + "Source" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConnect::Flow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaConnect::Flow.Encryption": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "ConstantInitializationVector": { + "type": "string" + }, + "DeviceId": { + "type": "string" + }, + "KeyType": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::MediaConnect::Flow.FailoverConfig": { + "additionalProperties": false, + "properties": { + "FailoverMode": { + "type": "string" + }, + "RecoveryWindow": { + "type": "number" + }, + "SourcePriority": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.SourcePriority" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaConnect::Flow.Source": { + "additionalProperties": false, + "properties": { + "Decryption": { + "$ref": "#/definitions/AWS::MediaConnect::Flow.Encryption" + }, + "Description": { + "type": "string" + }, + "EntitlementArn": { + "type": "string" + }, + "IngestIp": { + "type": "string" + }, + "IngestPort": { + "type": "number" + }, + "MaxBitrate": { + "type": "number" + }, + "MaxLatency": { + "type": "number" + }, + "MinLatency": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "SenderControlPort": { + "type": "number" + }, + "SenderIpAddress": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "SourceIngestPort": { + "type": "string" + }, + "SourceListenerAddress": { + "type": "string" + }, + "SourceListenerPort": { + "type": "number" + }, + "StreamId": { + "type": "string" + }, + "VpcInterfaceName": { + "type": "string" + }, + "WhitelistCidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaConnect::Flow.SourcePriority": { + "additionalProperties": false, + "properties": { + "PrimarySource": { + "type": "string" + } + }, + "required": [ + "PrimarySource" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowEntitlement": { + "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": { + "DataTransferSubscriberFeePercent": { + "type": "number" + }, + "Description": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaConnect::FlowEntitlement.Encryption" + }, + "EntitlementStatus": { + "type": "string" + }, + "FlowArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Subscribers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Description", + "FlowArn", + "Name", + "Subscribers" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConnect::FlowEntitlement" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowEntitlement.Encryption": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "ConstantInitializationVector": { + "type": "string" + }, + "DeviceId": { + "type": "string" + }, + "KeyType": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Algorithm", + "RoleArn" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowOutput": { + "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": { + "CidrAllowList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Destination": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.Encryption" + }, + "FlowArn": { + "type": "string" + }, + "MaxLatency": { + "type": "number" + }, + "MinLatency": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "Protocol": { + "type": "string" + }, + "RemoteId": { + "type": "string" + }, + "SmoothingLatency": { + "type": "number" + }, + "StreamId": { + "type": "string" + }, + "VpcInterfaceAttachment": { + "$ref": "#/definitions/AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment" + } + }, + "required": [ + "FlowArn", + "Protocol" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConnect::FlowOutput" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowOutput.Encryption": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "KeyType": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "SecretArn" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowOutput.VpcInterfaceAttachment": { + "additionalProperties": false, + "properties": { + "VpcInterfaceName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaConnect::FlowSource": { + "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": { + "Decryption": { + "$ref": "#/definitions/AWS::MediaConnect::FlowSource.Encryption" + }, + "Description": { + "type": "string" + }, + "EntitlementArn": { + "type": "string" + }, + "FlowArn": { + "type": "string" + }, + "IngestPort": { + "type": "number" + }, + "MaxBitrate": { + "type": "number" + }, + "MaxLatency": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "StreamId": { + "type": "string" + }, + "VpcInterfaceName": { + "type": "string" + }, + "WhitelistCidr": { + "type": "string" + } + }, + "required": [ + "Description", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConnect::FlowSource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowSource.Encryption": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "ConstantInitializationVector": { + "type": "string" + }, + "DeviceId": { + "type": "string" + }, + "KeyType": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Algorithm", + "RoleArn" + ], + "type": "object" + }, + "AWS::MediaConnect::FlowVpcInterface": { + "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": { + "FlowArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "FlowArn", + "Name", + "RoleArn", + "SecurityGroupIds", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConnect::FlowVpcInterface" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaConvert::JobTemplate": { + "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": { + "AccelerationSettings": { + "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.AccelerationSettings" + }, + "Category": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "HopDestinations": { + "items": { + "$ref": "#/definitions/AWS::MediaConvert::JobTemplate.HopDestination" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Queue": { + "type": "string" + }, + "SettingsJson": { + "type": "object" + }, + "StatusUpdateInterval": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "SettingsJson" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConvert::JobTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaConvert::JobTemplate.AccelerationSettings": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::MediaConvert::JobTemplate.HopDestination": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "Queue": { + "type": "string" + }, + "WaitMinutes": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaConvert::Preset": { + "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": { + "Category": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SettingsJson": { + "type": "object" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "SettingsJson" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConvert::Preset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaConvert::Queue": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PricingPlan": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaConvert::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::MediaLive::Channel": { + "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": { + "CdiInputSpecification": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CdiInputSpecification" + }, + "ChannelClass": { + "type": "string" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestination" + }, + "type": "array" + }, + "EncoderSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EncoderSettings" + }, + "InputAttachments": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputAttachment" + }, + "type": "array" + }, + "InputSpecification": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputSpecification" + }, + "LogLevel": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Vpc": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VpcOutputSettings" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaLive::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::MediaLive::Channel.AacSettings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "InputType": { + "type": "string" + }, + "Profile": { + "type": "string" + }, + "RateControlMode": { + "type": "string" + }, + "RawFormat": { + "type": "string" + }, + "SampleRate": { + "type": "number" + }, + "Spec": { + "type": "string" + }, + "VbrQuality": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Ac3Settings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "BitstreamMode": { + "type": "string" + }, + "CodingMode": { + "type": "string" + }, + "Dialnorm": { + "type": "number" + }, + "DrcProfile": { + "type": "string" + }, + "LfeFilter": { + "type": "string" + }, + "MetadataControl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AncillarySourceSettings": { + "additionalProperties": false, + "properties": { + "SourceAncillaryChannelNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveCdnSettings": { + "additionalProperties": false, + "properties": { + "ArchiveS3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveS3Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings" + }, + "RawSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RawSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveCdnSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveCdnSettings" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + }, + "RolloverInterval": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveOutputSettings": { + "additionalProperties": false, + "properties": { + "ContainerSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveContainerSettings" + }, + "Extension": { + "type": "string" + }, + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ArchiveS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AribDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.AribSourceSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioChannelMapping": { + "additionalProperties": false, + "properties": { + "InputChannelLevels": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputChannelLevel" + }, + "type": "array" + }, + "OutputChannel": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioCodecSettings": { + "additionalProperties": false, + "properties": { + "AacSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AacSettings" + }, + "Ac3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Ac3Settings" + }, + "Eac3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Eac3Settings" + }, + "Mp2Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Mp2Settings" + }, + "PassThroughSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.PassThroughSettings" + }, + "WavSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.WavSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioDescription": { + "additionalProperties": false, + "properties": { + "AudioNormalizationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioNormalizationSettings" + }, + "AudioSelectorName": { + "type": "string" + }, + "AudioType": { + "type": "string" + }, + "AudioTypeControl": { + "type": "string" + }, + "AudioWatermarkingSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioWatermarkSettings" + }, + "CodecSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioCodecSettings" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageCodeControl": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RemixSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RemixSettings" + }, + "StreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioHlsRenditionSelection": { + "additionalProperties": false, + "properties": { + "GroupId": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioLanguageSelection": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "type": "string" + }, + "LanguageSelectionPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioNormalizationSettings": { + "additionalProperties": false, + "properties": { + "Algorithm": { + "type": "string" + }, + "AlgorithmControl": { + "type": "string" + }, + "TargetLkfs": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioOnlyHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioGroupId": { + "type": "string" + }, + "AudioOnlyImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "AudioTrackType": { + "type": "string" + }, + "SegmentType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioPidSelection": { + "additionalProperties": false, + "properties": { + "Pid": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioSelector": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelectorSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioSelectorSettings": { + "additionalProperties": false, + "properties": { + "AudioHlsRenditionSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioHlsRenditionSelection" + }, + "AudioLanguageSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioLanguageSelection" + }, + "AudioPidSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioPidSelection" + }, + "AudioTrackSelection": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrackSelection" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioSilenceFailoverSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectorName": { + "type": "string" + }, + "AudioSilenceThresholdMsec": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioTrack": { + "additionalProperties": false, + "properties": { + "Track": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioTrackSelection": { + "additionalProperties": false, + "properties": { + "Tracks": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioTrack" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AudioWatermarkSettings": { + "additionalProperties": false, + "properties": { + "NielsenWatermarksSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenWatermarksSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AutomaticInputFailoverSettings": { + "additionalProperties": false, + "properties": { + "ErrorClearTimeMsec": { + "type": "number" + }, + "FailoverConditions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverCondition" + }, + "type": "array" + }, + "InputPreference": { + "type": "string" + }, + "SecondaryInputId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AvailBlanking": { + "additionalProperties": false, + "properties": { + "AvailBlankingImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AvailConfiguration": { + "additionalProperties": false, + "properties": { + "AvailSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.AvailSettings": { + "additionalProperties": false, + "properties": { + "Scte35SpliceInsert": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35SpliceInsert" + }, + "Scte35TimeSignalApos": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte35TimeSignalApos" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.BlackoutSlate": { + "additionalProperties": false, + "properties": { + "BlackoutSlateImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "NetworkEndBlackout": { + "type": "string" + }, + "NetworkEndBlackoutImage": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "NetworkId": { + "type": "string" + }, + "State": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.BurnInDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "BackgroundColor": { + "type": "string" + }, + "BackgroundOpacity": { + "type": "number" + }, + "Font": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "FontColor": { + "type": "string" + }, + "FontOpacity": { + "type": "number" + }, + "FontResolution": { + "type": "number" + }, + "FontSize": { + "type": "string" + }, + "OutlineColor": { + "type": "string" + }, + "OutlineSize": { + "type": "number" + }, + "ShadowColor": { + "type": "string" + }, + "ShadowOpacity": { + "type": "number" + }, + "ShadowXOffset": { + "type": "number" + }, + "ShadowYOffset": { + "type": "number" + }, + "TeletextGridControl": { + "type": "string" + }, + "XPosition": { + "type": "number" + }, + "YPosition": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionDescription": { + "additionalProperties": false, + "properties": { + "CaptionSelectorName": { + "type": "string" + }, + "DestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDestinationSettings" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageDescription": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionDestinationSettings": { + "additionalProperties": false, + "properties": { + "AribDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AribDestinationSettings" + }, + "BurnInDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.BurnInDestinationSettings" + }, + "DvbSubDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubDestinationSettings" + }, + "EbuTtDDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EbuTtDDestinationSettings" + }, + "EmbeddedDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedDestinationSettings" + }, + "EmbeddedPlusScte20DestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings" + }, + "RtmpCaptionInfoDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings" + }, + "Scte20PlusEmbeddedDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings" + }, + "Scte27DestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27DestinationSettings" + }, + "SmpteTtDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.SmpteTtDestinationSettings" + }, + "TeletextDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextDestinationSettings" + }, + "TtmlDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TtmlDestinationSettings" + }, + "WebvttDestinationSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.WebvttDestinationSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionLanguageMapping": { + "additionalProperties": false, + "properties": { + "CaptionChannel": { + "type": "number" + }, + "LanguageCode": { + "type": "string" + }, + "LanguageDescription": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionRectangle": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "number" + }, + "LeftOffset": { + "type": "number" + }, + "TopOffset": { + "type": "number" + }, + "Width": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionSelector": { + "additionalProperties": false, + "properties": { + "LanguageCode": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelectorSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CaptionSelectorSettings": { + "additionalProperties": false, + "properties": { + "AncillarySourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AncillarySourceSettings" + }, + "AribSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AribSourceSettings" + }, + "DvbSubSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSubSourceSettings" + }, + "EmbeddedSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.EmbeddedSourceSettings" + }, + "Scte20SourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte20SourceSettings" + }, + "Scte27SourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Scte27SourceSettings" + }, + "TeletextSourceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TeletextSourceSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.CdiInputSpecification": { + "additionalProperties": false, + "properties": { + "Resolution": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.ColorSpacePassthroughSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbNitSettings": { + "additionalProperties": false, + "properties": { + "NetworkId": { + "type": "number" + }, + "NetworkName": { + "type": "string" + }, + "RepInterval": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbSdtSettings": { + "additionalProperties": false, + "properties": { + "OutputSdt": { + "type": "string" + }, + "RepInterval": { + "type": "number" + }, + "ServiceName": { + "type": "string" + }, + "ServiceProviderName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbSubDestinationSettings": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "BackgroundColor": { + "type": "string" + }, + "BackgroundOpacity": { + "type": "number" + }, + "Font": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "FontColor": { + "type": "string" + }, + "FontOpacity": { + "type": "number" + }, + "FontResolution": { + "type": "number" + }, + "FontSize": { + "type": "string" + }, + "OutlineColor": { + "type": "string" + }, + "OutlineSize": { + "type": "number" + }, + "ShadowColor": { + "type": "string" + }, + "ShadowOpacity": { + "type": "number" + }, + "ShadowXOffset": { + "type": "number" + }, + "ShadowYOffset": { + "type": "number" + }, + "TeletextGridControl": { + "type": "string" + }, + "XPosition": { + "type": "number" + }, + "YPosition": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbSubSourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "type": "string" + }, + "Pid": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.DvbTdtSettings": { + "additionalProperties": false, + "properties": { + "RepInterval": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Eac3Settings": { + "additionalProperties": false, + "properties": { + "AttenuationControl": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BitstreamMode": { + "type": "string" + }, + "CodingMode": { + "type": "string" + }, + "DcFilter": { + "type": "string" + }, + "Dialnorm": { + "type": "number" + }, + "DrcLine": { + "type": "string" + }, + "DrcRf": { + "type": "string" + }, + "LfeControl": { + "type": "string" + }, + "LfeFilter": { + "type": "string" + }, + "LoRoCenterMixLevel": { + "type": "number" + }, + "LoRoSurroundMixLevel": { + "type": "number" + }, + "LtRtCenterMixLevel": { + "type": "number" + }, + "LtRtSurroundMixLevel": { + "type": "number" + }, + "MetadataControl": { + "type": "string" + }, + "PassthroughControl": { + "type": "string" + }, + "PhaseControl": { + "type": "string" + }, + "StereoDownmix": { + "type": "string" + }, + "SurroundExMode": { + "type": "string" + }, + "SurroundMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.EbuTtDDestinationSettings": { + "additionalProperties": false, + "properties": { + "CopyrightHolder": { + "type": "string" + }, + "FillLineGap": { + "type": "string" + }, + "FontFamily": { + "type": "string" + }, + "StyleControl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.EmbeddedDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.EmbeddedPlusScte20DestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.EmbeddedSourceSettings": { + "additionalProperties": false, + "properties": { + "Convert608To708": { + "type": "string" + }, + "Scte20Detection": { + "type": "string" + }, + "Source608ChannelNumber": { + "type": "number" + }, + "Source608TrackNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.EncoderSettings": { + "additionalProperties": false, + "properties": { + "AudioDescriptions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioDescription" + }, + "type": "array" + }, + "AvailBlanking": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailBlanking" + }, + "AvailConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AvailConfiguration" + }, + "BlackoutSlate": { + "$ref": "#/definitions/AWS::MediaLive::Channel.BlackoutSlate" + }, + "CaptionDescriptions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionDescription" + }, + "type": "array" + }, + "FeatureActivations": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FeatureActivations" + }, + "GlobalConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.GlobalConfiguration" + }, + "MotionGraphicsConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsConfiguration" + }, + "NielsenConfiguration": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenConfiguration" + }, + "OutputGroups": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroup" + }, + "type": "array" + }, + "TimecodeConfig": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TimecodeConfig" + }, + "VideoDescriptions": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoDescription" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FailoverCondition": { + "additionalProperties": false, + "properties": { + "FailoverConditionSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FailoverConditionSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FailoverConditionSettings": { + "additionalProperties": false, + "properties": { + "AudioSilenceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSilenceFailoverSettings" + }, + "InputLossSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossFailoverSettings" + }, + "VideoBlackSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoBlackFailoverSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FeatureActivations": { + "additionalProperties": false, + "properties": { + "InputPrepareScheduleActions": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FecOutputSettings": { + "additionalProperties": false, + "properties": { + "ColumnDepth": { + "type": "number" + }, + "IncludeFec": { + "type": "string" + }, + "RowLength": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Fmp4HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "TimedMetadataBehavior": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureCdnSettings": { + "additionalProperties": false, + "properties": { + "FrameCaptureS3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureS3Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + }, + "FrameCaptureCdnSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureCdnSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureHlsSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureOutputSettings": { + "additionalProperties": false, + "properties": { + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.FrameCaptureSettings": { + "additionalProperties": false, + "properties": { + "CaptureInterval": { + "type": "number" + }, + "CaptureIntervalUnits": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.GlobalConfiguration": { + "additionalProperties": false, + "properties": { + "InitialAudioGain": { + "type": "number" + }, + "InputEndAction": { + "type": "string" + }, + "InputLossBehavior": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLossBehavior" + }, + "OutputLockingMode": { + "type": "string" + }, + "OutputTimingSource": { + "type": "string" + }, + "SupportLowFramerateInputs": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H264ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings" + }, + "Rec601Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H264FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H264Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BufFillPct": { + "type": "number" + }, + "BufSize": { + "type": "number" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H264ColorSpaceSettings" + }, + "EntropyEncoding": { + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H264FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FlickerAq": { + "type": "string" + }, + "ForceFieldPictures": { + "type": "string" + }, + "FramerateControl": { + "type": "string" + }, + "FramerateDenominator": { + "type": "number" + }, + "FramerateNumerator": { + "type": "number" + }, + "GopBReference": { + "type": "string" + }, + "GopClosedCadence": { + "type": "number" + }, + "GopNumBFrames": { + "type": "number" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "number" + }, + "MinIInterval": { + "type": "number" + }, + "NumRefFrames": { + "type": "number" + }, + "ParControl": { + "type": "string" + }, + "ParDenominator": { + "type": "number" + }, + "ParNumerator": { + "type": "number" + }, + "Profile": { + "type": "string" + }, + "QualityLevel": { + "type": "string" + }, + "QvbrQualityLevel": { + "type": "number" + }, + "RateControlMode": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SceneChangeDetect": { + "type": "string" + }, + "Slices": { + "type": "number" + }, + "Softness": { + "type": "number" + }, + "SpatialAq": { + "type": "string" + }, + "SubgopLength": { + "type": "string" + }, + "Syntax": { + "type": "string" + }, + "TemporalAq": { + "type": "string" + }, + "TimecodeInsertion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H265ColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "ColorSpacePassthroughSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ColorSpacePassthroughSettings" + }, + "Hdr10Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings" + }, + "Rec601Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec601Settings" + }, + "Rec709Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Rec709Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H265FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.H265Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "AlternativeTransferFunction": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BufSize": { + "type": "number" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H265ColorSpaceSettings" + }, + "FilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H265FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FlickerAq": { + "type": "string" + }, + "FramerateDenominator": { + "type": "number" + }, + "FramerateNumerator": { + "type": "number" + }, + "GopClosedCadence": { + "type": "number" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "Level": { + "type": "string" + }, + "LookAheadRateControl": { + "type": "string" + }, + "MaxBitrate": { + "type": "number" + }, + "MinIInterval": { + "type": "number" + }, + "ParDenominator": { + "type": "number" + }, + "ParNumerator": { + "type": "number" + }, + "Profile": { + "type": "string" + }, + "QvbrQualityLevel": { + "type": "number" + }, + "RateControlMode": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SceneChangeDetect": { + "type": "string" + }, + "Slices": { + "type": "number" + }, + "Tier": { + "type": "string" + }, + "TimecodeInsertion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Hdr10Settings": { + "additionalProperties": false, + "properties": { + "MaxCll": { + "type": "number" + }, + "MaxFall": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsAkamaiSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "number" + }, + "FilecacheDuration": { + "type": "number" + }, + "HttpTransferMode": { + "type": "string" + }, + "NumRetries": { + "type": "number" + }, + "RestartDelay": { + "type": "number" + }, + "Salt": { + "type": "string" + }, + "Token": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsBasicPutSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "number" + }, + "FilecacheDuration": { + "type": "number" + }, + "NumRetries": { + "type": "number" + }, + "RestartDelay": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsCdnSettings": { + "additionalProperties": false, + "properties": { + "HlsAkamaiSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsAkamaiSettings" + }, + "HlsBasicPutSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsBasicPutSettings" + }, + "HlsMediaStoreSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsMediaStoreSettings" + }, + "HlsS3Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsS3Settings" + }, + "HlsWebdavSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsWebdavSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsGroupSettings": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BaseUrlContent": { + "type": "string" + }, + "BaseUrlContent1": { + "type": "string" + }, + "BaseUrlManifest": { + "type": "string" + }, + "BaseUrlManifest1": { + "type": "string" + }, + "CaptionLanguageMappings": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionLanguageMapping" + }, + "type": "array" + }, + "CaptionLanguageSetting": { + "type": "string" + }, + "ClientCache": { + "type": "string" + }, + "CodecSpecification": { + "type": "string" + }, + "ConstantIv": { + "type": "string" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + }, + "DirectoryStructure": { + "type": "string" + }, + "DiscontinuityTags": { + "type": "string" + }, + "EncryptionType": { + "type": "string" + }, + "HlsCdnSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsCdnSettings" + }, + "HlsId3SegmentTagging": { + "type": "string" + }, + "IFrameOnlyPlaylists": { + "type": "string" + }, + "IncompleteSegmentBehavior": { + "type": "string" + }, + "IndexNSegments": { + "type": "number" + }, + "InputLossAction": { + "type": "string" + }, + "IvInManifest": { + "type": "string" + }, + "IvSource": { + "type": "string" + }, + "KeepSegments": { + "type": "number" + }, + "KeyFormat": { + "type": "string" + }, + "KeyFormatVersions": { + "type": "string" + }, + "KeyProviderSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.KeyProviderSettings" + }, + "ManifestCompression": { + "type": "string" + }, + "ManifestDurationFormat": { + "type": "string" + }, + "MinSegmentLength": { + "type": "number" + }, + "Mode": { + "type": "string" + }, + "OutputSelection": { + "type": "string" + }, + "ProgramDateTime": { + "type": "string" + }, + "ProgramDateTimeClock": { + "type": "string" + }, + "ProgramDateTimePeriod": { + "type": "number" + }, + "RedundantManifest": { + "type": "string" + }, + "SegmentLength": { + "type": "number" + }, + "SegmentationMode": { + "type": "string" + }, + "SegmentsPerSubdirectory": { + "type": "number" + }, + "StreamInfResolution": { + "type": "string" + }, + "TimedMetadataId3Frame": { + "type": "string" + }, + "TimedMetadataId3Period": { + "type": "number" + }, + "TimestampDeltaMilliseconds": { + "type": "number" + }, + "TsFileMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsInputSettings": { + "additionalProperties": false, + "properties": { + "Bandwidth": { + "type": "number" + }, + "BufferSegments": { + "type": "number" + }, + "Retries": { + "type": "number" + }, + "RetryInterval": { + "type": "number" + }, + "Scte35Source": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsMediaStoreSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "number" + }, + "FilecacheDuration": { + "type": "number" + }, + "MediaStoreStorageClass": { + "type": "string" + }, + "NumRetries": { + "type": "number" + }, + "RestartDelay": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "type": "string" + }, + "HlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsSettings" + }, + "NameModifier": { + "type": "string" + }, + "SegmentModifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsS3Settings": { + "additionalProperties": false, + "properties": { + "CannedAcl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsSettings": { + "additionalProperties": false, + "properties": { + "AudioOnlyHlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioOnlyHlsSettings" + }, + "Fmp4HlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Fmp4HlsSettings" + }, + "FrameCaptureHlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureHlsSettings" + }, + "StandardHlsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.StandardHlsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HlsWebdavSettings": { + "additionalProperties": false, + "properties": { + "ConnectionRetryInterval": { + "type": "number" + }, + "FilecacheDuration": { + "type": "number" + }, + "HttpTransferMode": { + "type": "string" + }, + "NumRetries": { + "type": "number" + }, + "RestartDelay": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.HtmlMotionGraphicsSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.InputAttachment": { + "additionalProperties": false, + "properties": { + "AutomaticInputFailoverSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AutomaticInputFailoverSettings" + }, + "InputAttachmentName": { + "type": "string" + }, + "InputId": { + "type": "string" + }, + "InputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputChannelLevel": { + "additionalProperties": false, + "properties": { + "Gain": { + "type": "number" + }, + "InputChannel": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputLocation": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "Uri": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputLossBehavior": { + "additionalProperties": false, + "properties": { + "BlackFrameMsec": { + "type": "number" + }, + "InputLossImageColor": { + "type": "string" + }, + "InputLossImageSlate": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "InputLossImageType": { + "type": "string" + }, + "RepeatFrameMsec": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputLossFailoverSettings": { + "additionalProperties": false, + "properties": { + "InputLossThresholdMsec": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputSettings": { + "additionalProperties": false, + "properties": { + "AudioSelectors": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioSelector" + }, + "type": "array" + }, + "CaptionSelectors": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionSelector" + }, + "type": "array" + }, + "DeblockFilter": { + "type": "string" + }, + "DenoiseFilter": { + "type": "string" + }, + "FilterStrength": { + "type": "number" + }, + "InputFilter": { + "type": "string" + }, + "NetworkInputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NetworkInputSettings" + }, + "Scte35Pid": { + "type": "number" + }, + "Smpte2038DataPreference": { + "type": "string" + }, + "SourceEndBehavior": { + "type": "string" + }, + "VideoSelector": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelector" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.InputSpecification": { + "additionalProperties": false, + "properties": { + "Codec": { + "type": "string" + }, + "MaximumBitrate": { + "type": "string" + }, + "Resolution": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.KeyProviderSettings": { + "additionalProperties": false, + "properties": { + "StaticKeySettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.StaticKeySettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.M2tsSettings": { + "additionalProperties": false, + "properties": { + "AbsentInputAudioBehavior": { + "type": "string" + }, + "Arib": { + "type": "string" + }, + "AribCaptionsPid": { + "type": "string" + }, + "AribCaptionsPidControl": { + "type": "string" + }, + "AudioBufferModel": { + "type": "string" + }, + "AudioFramesPerPes": { + "type": "number" + }, + "AudioPids": { + "type": "string" + }, + "AudioStreamType": { + "type": "string" + }, + "Bitrate": { + "type": "number" + }, + "BufferModel": { + "type": "string" + }, + "CcDescriptor": { + "type": "string" + }, + "DvbNitSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbNitSettings" + }, + "DvbSdtSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbSdtSettings" + }, + "DvbSubPids": { + "type": "string" + }, + "DvbTdtSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.DvbTdtSettings" + }, + "DvbTeletextPid": { + "type": "string" + }, + "Ebif": { + "type": "string" + }, + "EbpAudioInterval": { + "type": "string" + }, + "EbpLookaheadMs": { + "type": "number" + }, + "EbpPlacement": { + "type": "string" + }, + "EcmPid": { + "type": "string" + }, + "EsRateInPes": { + "type": "string" + }, + "EtvPlatformPid": { + "type": "string" + }, + "EtvSignalPid": { + "type": "string" + }, + "FragmentTime": { + "type": "number" + }, + "Klv": { + "type": "string" + }, + "KlvDataPids": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "NullPacketBitrate": { + "type": "number" + }, + "PatInterval": { + "type": "number" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "number" + }, + "PcrPid": { + "type": "string" + }, + "PmtInterval": { + "type": "number" + }, + "PmtPid": { + "type": "string" + }, + "ProgramNum": { + "type": "number" + }, + "RateMode": { + "type": "string" + }, + "Scte27Pids": { + "type": "string" + }, + "Scte35Control": { + "type": "string" + }, + "Scte35Pid": { + "type": "string" + }, + "SegmentationMarkers": { + "type": "string" + }, + "SegmentationStyle": { + "type": "string" + }, + "SegmentationTime": { + "type": "number" + }, + "TimedMetadataBehavior": { + "type": "string" + }, + "TimedMetadataPid": { + "type": "string" + }, + "TransportStreamId": { + "type": "number" + }, + "VideoPid": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.M3u8Settings": { + "additionalProperties": false, + "properties": { + "AudioFramesPerPes": { + "type": "number" + }, + "AudioPids": { + "type": "string" + }, + "EcmPid": { + "type": "string" + }, + "NielsenId3Behavior": { + "type": "string" + }, + "PatInterval": { + "type": "number" + }, + "PcrControl": { + "type": "string" + }, + "PcrPeriod": { + "type": "number" + }, + "PcrPid": { + "type": "string" + }, + "PmtInterval": { + "type": "number" + }, + "PmtPid": { + "type": "string" + }, + "ProgramNum": { + "type": "number" + }, + "Scte35Behavior": { + "type": "string" + }, + "Scte35Pid": { + "type": "string" + }, + "TimedMetadataBehavior": { + "type": "string" + }, + "TimedMetadataPid": { + "type": "string" + }, + "TransportStreamId": { + "type": "number" + }, + "VideoPid": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MediaPackageGroupSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MediaPackageOutputSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.MotionGraphicsConfiguration": { + "additionalProperties": false, + "properties": { + "MotionGraphicsInsertion": { + "type": "string" + }, + "MotionGraphicsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MotionGraphicsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MotionGraphicsSettings": { + "additionalProperties": false, + "properties": { + "HtmlMotionGraphicsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HtmlMotionGraphicsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Mp2Settings": { + "additionalProperties": false, + "properties": { + "Bitrate": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "SampleRate": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Mpeg2FilterSettings": { + "additionalProperties": false, + "properties": { + "TemporalFilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.TemporalFilterSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Mpeg2Settings": { + "additionalProperties": false, + "properties": { + "AdaptiveQuantization": { + "type": "string" + }, + "AfdSignaling": { + "type": "string" + }, + "ColorMetadata": { + "type": "string" + }, + "ColorSpace": { + "type": "string" + }, + "DisplayAspectRatio": { + "type": "string" + }, + "FilterSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2FilterSettings" + }, + "FixedAfd": { + "type": "string" + }, + "FramerateDenominator": { + "type": "number" + }, + "FramerateNumerator": { + "type": "number" + }, + "GopClosedCadence": { + "type": "number" + }, + "GopNumBFrames": { + "type": "number" + }, + "GopSize": { + "type": "number" + }, + "GopSizeUnits": { + "type": "string" + }, + "ScanType": { + "type": "string" + }, + "SubgopLength": { + "type": "string" + }, + "TimecodeInsertion": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MsSmoothGroupSettings": { + "additionalProperties": false, + "properties": { + "AcquisitionPointId": { + "type": "string" + }, + "AudioOnlyTimecodeControl": { + "type": "string" + }, + "CertificateMode": { + "type": "string" + }, + "ConnectionRetryInterval": { + "type": "number" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + }, + "EventId": { + "type": "string" + }, + "EventIdMode": { + "type": "string" + }, + "EventStopBehavior": { + "type": "string" + }, + "FilecacheDuration": { + "type": "number" + }, + "FragmentLength": { + "type": "number" + }, + "InputLossAction": { + "type": "string" + }, + "NumRetries": { + "type": "number" + }, + "RestartDelay": { + "type": "number" + }, + "SegmentationMode": { + "type": "string" + }, + "SendDelayMs": { + "type": "number" + }, + "SparseTrackType": { + "type": "string" + }, + "StreamManifestBehavior": { + "type": "string" + }, + "TimestampOffset": { + "type": "string" + }, + "TimestampOffsetMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MsSmoothOutputSettings": { + "additionalProperties": false, + "properties": { + "H265PackagingType": { + "type": "string" + }, + "NameModifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MultiplexGroupSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.MultiplexOutputSettings": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings": { + "additionalProperties": false, + "properties": { + "MultiplexId": { + "type": "string" + }, + "ProgramName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NetworkInputSettings": { + "additionalProperties": false, + "properties": { + "HlsInputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsInputSettings" + }, + "ServerValidation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenCBET": { + "additionalProperties": false, + "properties": { + "CbetCheckDigitString": { + "type": "string" + }, + "CbetStepaside": { + "type": "string" + }, + "Csid": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenConfiguration": { + "additionalProperties": false, + "properties": { + "DistributorId": { + "type": "string" + }, + "NielsenPcmToId3Tagging": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenNaesIiNw": { + "additionalProperties": false, + "properties": { + "CheckDigitString": { + "type": "string" + }, + "Sid": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.NielsenWatermarksSettings": { + "additionalProperties": false, + "properties": { + "NielsenCbetSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenCBET" + }, + "NielsenDistributionType": { + "type": "string" + }, + "NielsenNaesIiNwSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.NielsenNaesIiNw" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Output": { + "additionalProperties": false, + "properties": { + "AudioDescriptionNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CaptionDescriptionNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OutputName": { + "type": "string" + }, + "OutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputSettings" + }, + "VideoDescriptionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputDestination": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "MediaPackageSettings": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputDestinationSettings" + }, + "type": "array" + }, + "MultiplexSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexProgramChannelDestinationSettings" + }, + "Settings": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputDestinationSettings" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputDestinationSettings": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "StreamName": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputGroup": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "OutputGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputGroupSettings" + }, + "Outputs": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Output" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputGroupSettings": { + "additionalProperties": false, + "properties": { + "ArchiveGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveGroupSettings" + }, + "FrameCaptureGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureGroupSettings" + }, + "HlsGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsGroupSettings" + }, + "MediaPackageGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageGroupSettings" + }, + "MsSmoothGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothGroupSettings" + }, + "MultiplexGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexGroupSettings" + }, + "RtmpGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpGroupSettings" + }, + "UdpGroupSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpGroupSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputLocationRef": { + "additionalProperties": false, + "properties": { + "DestinationRefId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.OutputSettings": { + "additionalProperties": false, + "properties": { + "ArchiveOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.ArchiveOutputSettings" + }, + "FrameCaptureOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureOutputSettings" + }, + "HlsOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.HlsOutputSettings" + }, + "MediaPackageOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MediaPackageOutputSettings" + }, + "MsSmoothOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MsSmoothOutputSettings" + }, + "MultiplexOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.MultiplexOutputSettings" + }, + "RtmpOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.RtmpOutputSettings" + }, + "UdpOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpOutputSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.PassThroughSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.RawSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.Rec601Settings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.Rec709Settings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.RemixSettings": { + "additionalProperties": false, + "properties": { + "ChannelMappings": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Channel.AudioChannelMapping" + }, + "type": "array" + }, + "ChannelsIn": { + "type": "number" + }, + "ChannelsOut": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.RtmpCaptionInfoDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.RtmpGroupSettings": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AuthenticationScheme": { + "type": "string" + }, + "CacheFullBehavior": { + "type": "string" + }, + "CacheLength": { + "type": "number" + }, + "CaptionData": { + "type": "string" + }, + "InputLossAction": { + "type": "string" + }, + "RestartDelay": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.RtmpOutputSettings": { + "additionalProperties": false, + "properties": { + "CertificateMode": { + "type": "string" + }, + "ConnectionRetryInterval": { + "type": "number" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + }, + "NumRetries": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte20PlusEmbeddedDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte20SourceSettings": { + "additionalProperties": false, + "properties": { + "Convert608To708": { + "type": "string" + }, + "Source608ChannelNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte27DestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte27SourceSettings": { + "additionalProperties": false, + "properties": { + "OcrLanguage": { + "type": "string" + }, + "Pid": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte35SpliceInsert": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "type": "number" + }, + "NoRegionalBlackoutFlag": { + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.Scte35TimeSignalApos": { + "additionalProperties": false, + "properties": { + "AdAvailOffset": { + "type": "number" + }, + "NoRegionalBlackoutFlag": { + "type": "string" + }, + "WebDeliveryAllowedFlag": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.SmpteTtDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.StandardHlsSettings": { + "additionalProperties": false, + "properties": { + "AudioRenditionSets": { + "type": "string" + }, + "M3u8Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.M3u8Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.StaticKeySettings": { + "additionalProperties": false, + "properties": { + "KeyProviderServer": { + "$ref": "#/definitions/AWS::MediaLive::Channel.InputLocation" + }, + "StaticKeyValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.TeletextDestinationSettings": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::MediaLive::Channel.TeletextSourceSettings": { + "additionalProperties": false, + "properties": { + "OutputRectangle": { + "$ref": "#/definitions/AWS::MediaLive::Channel.CaptionRectangle" + }, + "PageNumber": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.TemporalFilterSettings": { + "additionalProperties": false, + "properties": { + "PostFilterSharpening": { + "type": "string" + }, + "Strength": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.TimecodeConfig": { + "additionalProperties": false, + "properties": { + "Source": { + "type": "string" + }, + "SyncThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.TtmlDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.UdpContainerSettings": { + "additionalProperties": false, + "properties": { + "M2tsSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.M2tsSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.UdpGroupSettings": { + "additionalProperties": false, + "properties": { + "InputLossAction": { + "type": "string" + }, + "TimedMetadataId3Frame": { + "type": "string" + }, + "TimedMetadataId3Period": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.UdpOutputSettings": { + "additionalProperties": false, + "properties": { + "BufferMsec": { + "type": "number" + }, + "ContainerSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.UdpContainerSettings" + }, + "Destination": { + "$ref": "#/definitions/AWS::MediaLive::Channel.OutputLocationRef" + }, + "FecOutputSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FecOutputSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoBlackFailoverSettings": { + "additionalProperties": false, + "properties": { + "BlackDetectThreshold": { + "type": "number" + }, + "VideoBlackThresholdMsec": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoCodecSettings": { + "additionalProperties": false, + "properties": { + "FrameCaptureSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.FrameCaptureSettings" + }, + "H264Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H264Settings" + }, + "H265Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.H265Settings" + }, + "Mpeg2Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Mpeg2Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoDescription": { + "additionalProperties": false, + "properties": { + "CodecSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoCodecSettings" + }, + "Height": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "RespondToAfd": { + "type": "string" + }, + "ScalingBehavior": { + "type": "string" + }, + "Sharpness": { + "type": "number" + }, + "Width": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelector": { + "additionalProperties": false, + "properties": { + "ColorSpace": { + "type": "string" + }, + "ColorSpaceSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings" + }, + "ColorSpaceUsage": { + "type": "string" + }, + "SelectorSettings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorSettings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorColorSpaceSettings": { + "additionalProperties": false, + "properties": { + "Hdr10Settings": { + "$ref": "#/definitions/AWS::MediaLive::Channel.Hdr10Settings" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorPid": { + "additionalProperties": false, + "properties": { + "Pid": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorProgramId": { + "additionalProperties": false, + "properties": { + "ProgramId": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VideoSelectorSettings": { + "additionalProperties": false, + "properties": { + "VideoSelectorPid": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorPid" + }, + "VideoSelectorProgramId": { + "$ref": "#/definitions/AWS::MediaLive::Channel.VideoSelectorProgramId" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.VpcOutputSettings": { + "additionalProperties": false, + "properties": { + "PublicAddressAllocationIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.WavSettings": { + "additionalProperties": false, + "properties": { + "BitDepth": { + "type": "number" + }, + "CodingMode": { + "type": "string" + }, + "SampleRate": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaLive::Channel.WebvttDestinationSettings": { + "additionalProperties": false, + "properties": { + "StyleControl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input": { + "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": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Input.InputDestinationRequest" + }, + "type": "array" + }, + "InputDevices": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Input.InputDeviceSettings" + }, + "type": "array" + }, + "InputSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MediaConnectFlows": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Input.MediaConnectFlowRequest" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::Input.InputSourceRequest" + }, + "type": "array" + }, + "Tags": { + "type": "object" + }, + "Type": { + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/AWS::MediaLive::Input.InputVpcRequest" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaLive::Input" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::MediaLive::Input.InputDestinationRequest": { + "additionalProperties": false, + "properties": { + "StreamName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputDeviceRequest": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputDeviceSettings": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputSourceRequest": { + "additionalProperties": false, + "properties": { + "PasswordParam": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.InputVpcRequest": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaLive::Input.MediaConnectFlowRequest": { + "additionalProperties": false, + "properties": { + "FlowArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaLive::InputSecurityGroup": { + "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": { + "Tags": { + "type": "object" + }, + "WhitelistRules": { + "items": { + "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaLive::InputSecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::MediaLive::InputSecurityGroup.InputWhitelistRuleCidr": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::Asset": { + "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": { + "Id": { + "type": "string" + }, + "PackagingGroupId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + }, + "SourceArn": { + "type": "string" + }, + "SourceRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id", + "PackagingGroupId", + "SourceArn", + "SourceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::Asset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::Asset.EgressEndpoint": { + "additionalProperties": false, + "properties": { + "PackagingConfigurationId": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "PackagingConfigurationId", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::Channel": { + "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": { + "Description": { + "type": "string" + }, + "EgressAccessLogs": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration" + }, + "HlsIngest": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.HlsIngest" + }, + "Id": { + "type": "string" + }, + "IngressAccessLogs": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.LogConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::Channel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::Channel.HlsIngest": { + "additionalProperties": false, + "properties": { + "ingestEndpoints": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::Channel.IngestEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::MediaPackage::Channel.IngestEndpoint": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "Id", + "Password", + "Url", + "Username" + ], + "type": "object" + }, + "AWS::MediaPackage::Channel.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint": { + "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": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.Authorization" + }, + "ChannelId": { + "type": "string" + }, + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashPackage" + }, + "Description": { + "type": "string" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsPackage" + }, + "Id": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssPackage" + }, + "Origination": { + "type": "string" + }, + "StartoverWindowSeconds": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TimeDelaySeconds": { + "type": "number" + }, + "Whitelist": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ChannelId", + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::OriginEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentPrefix": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashEncryption": { + "additionalProperties": false, + "properties": { + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.DashPackage": { + "additionalProperties": false, + "properties": { + "AdTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.DashEncryption" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestLayout": { + "type": "string" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "MinUpdatePeriodSeconds": { + "type": "number" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Profile": { + "type": "string" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "SuggestedPresentationDelaySeconds": { + "type": "number" + }, + "UtcTiming": { + "type": "string" + }, + "UtcTimingUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration": { + "additionalProperties": false, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "KeyRotationIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.HlsPackage": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "AdTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdsOnDeliveryRestrictions": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.HlsEncryption" + }, + "IncludeDvbSubtitles": { + "type": "boolean" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PlaylistType": { + "type": "string" + }, + "PlaylistWindowSeconds": { + "type": "number" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.MssEncryption" + }, + "ManifestWindowSeconds": { + "type": "number" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "CertificateArn": { + "type": "string" + }, + "EncryptionContractConfiguration": { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint.EncryptionContractConfiguration" + }, + "ResourceId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::OriginEndpoint.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration": { + "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": { + "CmafPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafPackage" + }, + "DashPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashPackage" + }, + "HlsPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsPackage" + }, + "Id": { + "type": "string" + }, + "MssPackage": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssPackage" + }, + "PackagingGroupId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id", + "PackagingGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.CmafPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.CmafEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "IncludeEncoderConfigurationInSegments": { + "type": "boolean" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashManifest": { + "additionalProperties": false, + "properties": { + "ManifestLayout": { + "type": "string" + }, + "ManifestName": { + "type": "string" + }, + "MinBufferTimeSeconds": { + "type": "number" + }, + "Profile": { + "type": "string" + }, + "ScteMarkersSource": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.DashPackage": { + "additionalProperties": false, + "properties": { + "DashManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashManifest" + }, + "type": "array" + }, + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.DashEncryption" + }, + "IncludeEncoderConfigurationInSegments": { + "type": "boolean" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "PeriodTriggers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "SegmentTemplateFormat": { + "type": "string" + } + }, + "required": [ + "DashManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration": { + "additionalProperties": false, + "properties": { + "PresetSpeke20Audio": { + "type": "string" + }, + "PresetSpeke20Video": { + "type": "string" + } + }, + "required": [ + "PresetSpeke20Audio", + "PresetSpeke20Video" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsEncryption": { + "additionalProperties": false, + "properties": { + "ConstantInitializationVector": { + "type": "string" + }, + "EncryptionMethod": { + "type": "string" + }, + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsManifest": { + "additionalProperties": false, + "properties": { + "AdMarkers": { + "type": "string" + }, + "IncludeIframeOnlyStream": { + "type": "boolean" + }, + "ManifestName": { + "type": "string" + }, + "ProgramDateTimeIntervalSeconds": { + "type": "number" + }, + "RepeatExtXKey": { + "type": "boolean" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.HlsPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsEncryption" + }, + "HlsManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.HlsManifest" + }, + "type": "array" + }, + "IncludeDvbSubtitles": { + "type": "boolean" + }, + "SegmentDurationSeconds": { + "type": "number" + }, + "UseAudioRenditionGroup": { + "type": "boolean" + } + }, + "required": [ + "HlsManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssEncryption": { + "additionalProperties": false, + "properties": { + "SpekeKeyProvider": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider" + } + }, + "required": [ + "SpekeKeyProvider" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssManifest": { + "additionalProperties": false, + "properties": { + "ManifestName": { + "type": "string" + }, + "StreamSelection": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.StreamSelection" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.MssPackage": { + "additionalProperties": false, + "properties": { + "Encryption": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssEncryption" + }, + "MssManifests": { + "items": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.MssManifest" + }, + "type": "array" + }, + "SegmentDurationSeconds": { + "type": "number" + } + }, + "required": [ + "MssManifests" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.SpekeKeyProvider": { + "additionalProperties": false, + "properties": { + "EncryptionContractConfiguration": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration.EncryptionContractConfiguration" + }, + "RoleArn": { + "type": "string" + }, + "SystemIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "RoleArn", + "SystemIds", + "Url" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingConfiguration.StreamSelection": { + "additionalProperties": false, + "properties": { + "MaxVideoBitsPerSecond": { + "type": "number" + }, + "MinVideoBitsPerSecond": { + "type": "number" + }, + "StreamOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup": { + "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": { + "Authorization": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.Authorization" + }, + "EgressAccessLogs": { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup.LogConfiguration" + }, + "Id": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaPackage::PackagingGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup.Authorization": { + "additionalProperties": false, + "properties": { + "CdnIdentifierSecret": { + "type": "string" + }, + "SecretsRoleArn": { + "type": "string" + } + }, + "required": [ + "CdnIdentifierSecret", + "SecretsRoleArn" + ], + "type": "object" + }, + "AWS::MediaPackage::PackagingGroup.LogConfiguration": { + "additionalProperties": false, + "properties": { + "LogGroupName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container": { + "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": { + "AccessLoggingEnabled": { + "type": "boolean" + }, + "ContainerName": { + "type": "string" + }, + "CorsPolicy": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.CorsRule" + }, + "type": "array" + }, + "LifecyclePolicy": { + "type": "string" + }, + "MetricPolicy": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicy" + }, + "Policy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ContainerName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaStore::Container" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaStore::Container.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposeHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxAgeSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicy": { + "additionalProperties": false, + "properties": { + "ContainerLevelMetrics": { + "type": "string" + }, + "MetricPolicyRules": { + "items": { + "$ref": "#/definitions/AWS::MediaStore::Container.MetricPolicyRule" + }, + "type": "array" + } + }, + "required": [ + "ContainerLevelMetrics" + ], + "type": "object" + }, + "AWS::MediaStore::Container.MetricPolicyRule": { + "additionalProperties": false, + "properties": { + "ObjectGroup": { + "type": "string" + }, + "ObjectGroupName": { + "type": "string" + } + }, + "required": [ + "ObjectGroup", + "ObjectGroupName" + ], + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration": { + "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": { + "AdDecisionServerUrl": { + "type": "string" + }, + "AvailSuppression": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.AvailSuppression" + }, + "Bumper": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.Bumper" + }, + "CdnConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.CdnConfiguration" + }, + "ConfigurationAliases": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "object" + } + }, + "type": "object" + }, + "DashConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.DashConfiguration" + }, + "HlsConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.HlsConfiguration" + }, + "LivePreRollConfiguration": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.LivePreRollConfiguration" + }, + "ManifestProcessingRules": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.ManifestProcessingRules" + }, + "Name": { + "type": "string" + }, + "PersonalizationThresholdSeconds": { + "type": "number" + }, + "SlateAdUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TranscodeProfileName": { + "type": "string" + }, + "VideoContentSourceUrl": { + "type": "string" + } + }, + "required": [ + "AdDecisionServerUrl", + "Name", + "VideoContentSourceUrl" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MediaTailor::PlaybackConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.AdMarkerPassthrough": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.AvailSuppression": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.Bumper": { + "additionalProperties": false, + "properties": { + "EndUrl": { + "type": "string" + }, + "StartUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.CdnConfiguration": { + "additionalProperties": false, + "properties": { + "AdSegmentUrlPrefix": { + "type": "string" + }, + "ContentSegmentUrlPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.DashConfiguration": { + "additionalProperties": false, + "properties": { + "ManifestEndpointPrefix": { + "type": "string" + }, + "MpdLocation": { + "type": "string" + }, + "OriginManifestType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.HlsConfiguration": { + "additionalProperties": false, + "properties": { + "ManifestEndpointPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.LivePreRollConfiguration": { + "additionalProperties": false, + "properties": { + "AdDecisionServerUrl": { + "type": "string" + }, + "MaxDurationSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MediaTailor::PlaybackConfiguration.ManifestProcessingRules": { + "additionalProperties": false, + "properties": { + "AdMarkerPassthrough": { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration.AdMarkerPassthrough" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ACL": { + "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": { + "ACLName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserNames": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ACLName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster": { + "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": { + "ACLName": { + "type": "string" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "ClusterEndpoint": { + "$ref": "#/definitions/AWS::MemoryDB::Cluster.Endpoint" + }, + "ClusterName": { + "type": "string" + }, + "DataTiering": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "FinalSnapshotName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "MaintenanceWindow": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumReplicasPerShard": { + "type": "number" + }, + "NumShards": { + "type": "number" + }, + "ParameterGroupName": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnapshotName": { + "type": "string" + }, + "SnapshotRetentionLimit": { + "type": "number" + }, + "SnapshotWindow": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SnsTopicStatus": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "TLSEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ACLName", + "ClusterName", + "NodeType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::MemoryDB::ParameterGroup": { + "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": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "ParameterGroupName": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Family", + "ParameterGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::ParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::SubnetGroup": { + "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": { + "Description": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubnetGroupName", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::SubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::User": { + "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": { + "AccessString": { + "type": "string" + }, + "AuthenticationMode": { + "$ref": "#/definitions/AWS::MemoryDB::User.AuthenticationMode" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "AccessString", + "AuthenticationMode", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::MemoryDB::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::MemoryDB::User.AuthenticationMode": { + "additionalProperties": false, + "properties": { + "Passwords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Neptune::DBCluster": { + "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": { + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::Neptune::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EngineVersion": { + "type": "string" + }, + "IamAuthEnabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "RestoreToTime": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Neptune::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::Neptune::DBClusterParameterGroup": { + "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": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBInstance": { + "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": { + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBInstanceClass" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBParameterGroup": { + "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": { + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Neptune::DBSubnetGroup": { + "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": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Neptune::DBSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall": { + "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": { + "DeleteProtection": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "FirewallName": { + "type": "string" + }, + "FirewallPolicyArn": { + "type": "string" + }, + "FirewallPolicyChangeProtection": { + "type": "boolean" + }, + "SubnetChangeProtection": { + "type": "boolean" + }, + "SubnetMappings": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall.SubnetMapping" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "FirewallName", + "FirewallPolicyArn", + "SubnetMappings", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::Firewall" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::Firewall.SubnetMapping": { + "additionalProperties": false, + "properties": { + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy": { + "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": { + "Description": { + "type": "string" + }, + "FirewallPolicy": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy" + }, + "FirewallPolicyName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "FirewallPolicy", + "FirewallPolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::FirewallPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.FirewallPolicy": { + "additionalProperties": false, + "properties": { + "StatefulDefaultActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatefulEngineOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions" + }, + "StatefulRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference" + }, + "type": "array" + }, + "StatelessCustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.CustomAction" + }, + "type": "array" + }, + "StatelessDefaultActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatelessFragmentDefaultActions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatelessRuleGroupReferences": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference" + }, + "type": "array" + } + }, + "required": [ + "StatelessDefaultActions", + "StatelessFragmentDefaultActions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.Dimension" + }, + "type": "array" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulEngineOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + }, + "StreamExceptionPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupOverride": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Override": { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy.StatefulRuleGroupOverride" + }, + "Priority": { + "type": "number" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::FirewallPolicy.StatelessRuleGroupReference": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "Priority", + "ResourceArn" + ], + "type": "object" + }, + "AWS::NetworkFirewall::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": { + "FirewallArn": { + "type": "string" + }, + "FirewallName": { + "type": "string" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration" + } + }, + "required": [ + "FirewallArn", + "LoggingConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig": { + "additionalProperties": false, + "properties": { + "LogDestination": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "LogDestinationType": { + "type": "string" + }, + "LogType": { + "type": "string" + } + }, + "required": [ + "LogDestination", + "LogDestinationType", + "LogType" + ], + "type": "object" + }, + "AWS::NetworkFirewall::LoggingConfiguration.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "LogDestinationConfigs": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration.LogDestinationConfig" + }, + "type": "array" + } + }, + "required": [ + "LogDestinationConfigs" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup": { + "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": { + "Capacity": { + "type": "number" + }, + "Description": { + "type": "string" + }, + "RuleGroup": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleGroup" + }, + "RuleGroupName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Capacity", + "RuleGroupName", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkFirewall::RuleGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.ActionDefinition": { + "additionalProperties": false, + "properties": { + "PublishMetricAction": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PublishMetricAction" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Address": { + "additionalProperties": false, + "properties": { + "AddressDefinition": { + "type": "string" + } + }, + "required": [ + "AddressDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.CustomAction": { + "additionalProperties": false, + "properties": { + "ActionDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ActionDefinition" + }, + "ActionName": { + "type": "string" + } + }, + "required": [ + "ActionDefinition", + "ActionName" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Dimension": { + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" + } + }, + "required": [ + "Value" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.Header": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "DestinationPort": { + "type": "string" + }, + "Direction": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "SourcePort": { + "type": "string" + } + }, + "required": [ + "Destination", + "DestinationPort", + "Direction", + "Protocol", + "Source", + "SourcePort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.IPSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.IPSetReference": { + "additionalProperties": false, + "properties": { + "ReferenceArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.MatchAttributes": { + "additionalProperties": false, + "properties": { + "DestinationPorts": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" + }, + "type": "array" + }, + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "type": "array" + }, + "Protocols": { + "items": { + "type": "number" + }, + "type": "array" + }, + "SourcePorts": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortRange" + }, + "type": "array" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Address" + }, + "type": "array" + }, + "TCPFlags": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.TCPFlagField" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortRange": { + "additionalProperties": false, + "properties": { + "FromPort": { + "type": "number" + }, + "ToPort": { + "type": "number" + } + }, + "required": [ + "FromPort", + "ToPort" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PortSet": { + "additionalProperties": false, + "properties": { + "Definition": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.PublishMetricAction": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Dimension" + }, + "type": "array" + } + }, + "required": [ + "Dimensions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.ReferenceSets": { + "additionalProperties": false, + "properties": { + "IPSetReferences": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSetReference" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleDefinition": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MatchAttributes": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.MatchAttributes" + } + }, + "required": [ + "Actions", + "MatchAttributes" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleGroup": { + "additionalProperties": false, + "properties": { + "ReferenceSets": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.ReferenceSets" + }, + "RuleVariables": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleVariables" + }, + "RulesSource": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSource" + }, + "StatefulRuleOptions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions" + } + }, + "required": [ + "RulesSource" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleOption": { + "additionalProperties": false, + "properties": { + "Keyword": { + "type": "string" + }, + "Settings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Keyword" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RuleVariables": { + "additionalProperties": false, + "properties": { + "IPSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.IPSet" + } + }, + "type": "object" + }, + "PortSets": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.PortSet" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSource": { + "additionalProperties": false, + "properties": { + "RulesSourceList": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RulesSourceList" + }, + "RulesString": { + "type": "string" + }, + "StatefulRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatefulRule" + }, + "type": "array" + }, + "StatelessRulesAndCustomActions": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.RulesSourceList": { + "additionalProperties": false, + "properties": { + "GeneratedRulesType": { + "type": "string" + }, + "TargetTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Targets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "GeneratedRulesType", + "TargetTypes", + "Targets" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRule": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Header": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.Header" + }, + "RuleOptions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleOption" + }, + "type": "array" + } + }, + "required": [ + "Action", + "Header", + "RuleOptions" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatefulRuleOptions": { + "additionalProperties": false, + "properties": { + "RuleOrder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRule": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "RuleDefinition": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.RuleDefinition" + } + }, + "required": [ + "Priority", + "RuleDefinition" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.StatelessRulesAndCustomActions": { + "additionalProperties": false, + "properties": { + "CustomActions": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.CustomAction" + }, + "type": "array" + }, + "StatelessRules": { + "items": { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup.StatelessRule" + }, + "type": "array" + } + }, + "required": [ + "StatelessRules" + ], + "type": "object" + }, + "AWS::NetworkFirewall::RuleGroup.TCPFlagField": { + "additionalProperties": false, + "properties": { + "Flags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Masks": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Flags" + ], + "type": "object" + }, + "AWS::NetworkManager::ConnectAttachment": { + "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": { + "CoreNetworkId": { + "type": "string" + }, + "EdgeLocation": { + "type": "string" + }, + "Options": { + "$ref": "#/definitions/AWS::NetworkManager::ConnectAttachment.ConnectAttachmentOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TransportAttachmentId": { + "type": "string" + } + }, + "required": [ + "CoreNetworkId", + "EdgeLocation", + "Options", + "TransportAttachmentId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::ConnectAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::ConnectAttachment.ConnectAttachmentOptions": { + "additionalProperties": false, + "properties": { + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkManager::ConnectAttachment.ProposedSegmentChange": { + "additionalProperties": false, + "properties": { + "AttachmentPolicyRuleNumber": { + "type": "number" + }, + "SegmentName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkManager::ConnectPeer": { + "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": { + "BgpOptions": { + "$ref": "#/definitions/AWS::NetworkManager::ConnectPeer.BgpOptions" + }, + "ConnectAttachmentId": { + "type": "string" + }, + "CoreNetworkAddress": { + "type": "string" + }, + "InsideCidrBlocks": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PeerAddress": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::ConnectPeer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::NetworkManager::ConnectPeer.BgpOptions": { + "additionalProperties": false, + "properties": { + "PeerAsn": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::NetworkManager::ConnectPeer.ConnectPeerBgpConfiguration": { + "additionalProperties": false, + "properties": { + "CoreNetworkAddress": { + "type": "string" + }, + "CoreNetworkAsn": { + "type": "number" + }, + "PeerAddress": { + "type": "string" + }, + "PeerAsn": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::NetworkManager::ConnectPeer.ConnectPeerConfiguration": { + "additionalProperties": false, + "properties": { + "BgpConfigurations": { + "items": { + "$ref": "#/definitions/AWS::NetworkManager::ConnectPeer.ConnectPeerBgpConfiguration" + }, + "type": "array" + }, + "CoreNetworkAddress": { + "type": "string" + }, + "InsideCidrBlocks": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PeerAddress": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkManager::CoreNetwork": { + "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": { + "Description": { + "type": "string" + }, + "GlobalNetworkId": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GlobalNetworkId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::CoreNetwork" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::CoreNetwork.CoreNetworkEdge": { + "additionalProperties": false, + "properties": { + "Asn": { + "type": "number" + }, + "EdgeLocation": { + "type": "string" + }, + "InsideCidrBlocks": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkManager::CoreNetwork.CoreNetworkSegment": { + "additionalProperties": false, + "properties": { + "EdgeLocations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SharedSegments": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkManager::CustomerGatewayAssociation": { + "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": { + "CustomerGatewayArn": { + "type": "string" + }, + "DeviceId": { + "type": "string" + }, + "GlobalNetworkId": { + "type": "string" + }, + "LinkId": { + "type": "string" + } + }, + "required": [ + "CustomerGatewayArn", + "DeviceId", + "GlobalNetworkId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::CustomerGatewayAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::Device": { + "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": { + "Description": { + "type": "string" + }, + "GlobalNetworkId": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::NetworkManager::Device.Location" + }, + "Model": { + "type": "string" + }, + "SerialNumber": { + "type": "string" + }, + "SiteId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + }, + "Vendor": { + "type": "string" + } + }, + "required": [ + "GlobalNetworkId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::Device" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::Device.Location": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkManager::GlobalNetwork": { + "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": { + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::GlobalNetwork" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::NetworkManager::Link": { + "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": { + "Bandwidth": { + "$ref": "#/definitions/AWS::NetworkManager::Link.Bandwidth" + }, + "Description": { + "type": "string" + }, + "GlobalNetworkId": { + "type": "string" + }, + "Provider": { + "type": "string" + }, + "SiteId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Bandwidth", + "GlobalNetworkId", + "SiteId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::Link" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::Link.Bandwidth": { + "additionalProperties": false, + "properties": { + "DownloadSpeed": { + "type": "number" + }, + "UploadSpeed": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::NetworkManager::LinkAssociation": { + "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": { + "DeviceId": { + "type": "string" + }, + "GlobalNetworkId": { + "type": "string" + }, + "LinkId": { + "type": "string" + } + }, + "required": [ + "DeviceId", + "GlobalNetworkId", + "LinkId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::LinkAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::Site": { + "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": { + "Description": { + "type": "string" + }, + "GlobalNetworkId": { + "type": "string" + }, + "Location": { + "$ref": "#/definitions/AWS::NetworkManager::Site.Location" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GlobalNetworkId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::Site" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::Site.Location": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Latitude": { + "type": "string" + }, + "Longitude": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NetworkManager::SiteToSiteVpnAttachment": { + "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": { + "CoreNetworkId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpnConnectionArn": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::SiteToSiteVpnAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::NetworkManager::SiteToSiteVpnAttachment.ProposedSegmentChange": { + "additionalProperties": false, + "properties": { + "AttachmentPolicyRuleNumber": { + "type": "number" + }, + "SegmentName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkManager::TransitGatewayRegistration": { + "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": { + "GlobalNetworkId": { + "type": "string" + }, + "TransitGatewayArn": { + "type": "string" + } + }, + "required": [ + "GlobalNetworkId", + "TransitGatewayArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::TransitGatewayRegistration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::VpcAttachment": { + "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": { + "CoreNetworkId": { + "type": "string" + }, + "Options": { + "$ref": "#/definitions/AWS::NetworkManager::VpcAttachment.VpcOptions" + }, + "SubnetArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcArn": { + "type": "string" + } + }, + "required": [ + "CoreNetworkId", + "SubnetArns", + "VpcArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NetworkManager::VpcAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NetworkManager::VpcAttachment.ProposedSegmentChange": { + "additionalProperties": false, + "properties": { + "AttachmentPolicyRuleNumber": { + "type": "number" + }, + "SegmentName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::NetworkManager::VpcAttachment.VpcOptions": { + "additionalProperties": false, + "properties": { + "ApplianceModeSupport": { + "type": "boolean" + }, + "Ipv6Support": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile": { + "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": { + "Description": { + "type": "string" + }, + "Ec2SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LaunchProfileProtocolVersions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "StreamConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfiguration" + }, + "StudioComponentIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StudioId": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Ec2SubnetIds", + "LaunchProfileProtocolVersions", + "Name", + "StreamConfiguration", + "StudioComponentIds", + "StudioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::LaunchProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile.StreamConfiguration": { + "additionalProperties": false, + "properties": { + "AutomaticTerminationMode": { + "type": "string" + }, + "ClipboardMode": { + "type": "string" + }, + "Ec2InstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MaxSessionLengthInMinutes": { + "type": "number" + }, + "MaxStoppedSessionLengthInMinutes": { + "type": "number" + }, + "SessionPersistenceMode": { + "type": "string" + }, + "SessionStorage": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage" + }, + "StreamingImageIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VolumeConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.VolumeConfiguration" + } + }, + "required": [ + "ClipboardMode", + "Ec2InstanceTypes", + "StreamingImageIds" + ], + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile.StreamConfigurationSessionStorage": { + "additionalProperties": false, + "properties": { + "Mode": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Root": { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile.StreamingSessionStorageRoot": { + "additionalProperties": false, + "properties": { + "Linux": { + "type": "string" + }, + "Windows": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::LaunchProfile.VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Iops": { + "type": "number" + }, + "Size": { + "type": "number" + }, + "Throughput": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StreamingImage": { + "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": { + "Description": { + "type": "string" + }, + "Ec2ImageId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StudioId": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Ec2ImageId", + "Name", + "StudioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::StreamingImage" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::StreamingImage.StreamingImageEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::NimbleStudio::Studio": { + "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": { + "AdminRoleArn": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "StudioEncryptionConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::Studio.StudioEncryptionConfiguration" + }, + "StudioName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "UserRoleArn": { + "type": "string" + } + }, + "required": [ + "AdminRoleArn", + "DisplayName", + "StudioName", + "UserRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::Studio" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::Studio.StudioEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KeyArn": { + "type": "string" + }, + "KeyType": { + "type": "string" + } + }, + "required": [ + "KeyType" + ], + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent": { + "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": { + "Configuration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration" + }, + "Description": { + "type": "string" + }, + "Ec2SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "InitializationScripts": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "ScriptParameters": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue" + }, + "type": "array" + }, + "StudioId": { + "type": "string" + }, + "Subtype": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "StudioId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::NimbleStudio::StudioComponent" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration": { + "additionalProperties": false, + "properties": { + "ComputerAttributes": { + "items": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryComputerAttribute" + }, + "type": "array" + }, + "DirectoryId": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryUser": { + "type": "string" + }, + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.ScriptParameterKeyValue": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "FileSystemId": { + "type": "string" + }, + "LinuxMountPoint": { + "type": "string" + }, + "ShareName": { + "type": "string" + }, + "WindowsMountDrive": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentConfiguration": { + "additionalProperties": false, + "properties": { + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ActiveDirectoryConfiguration" + }, + "ComputeFarmConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.ComputeFarmConfiguration" + }, + "LicenseServiceConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.LicenseServiceConfiguration" + }, + "SharedFileSystemConfiguration": { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent.SharedFileSystemConfiguration" + } + }, + "type": "object" + }, + "AWS::NimbleStudio::StudioComponent.StudioComponentInitializationScript": { + "additionalProperties": false, + "properties": { + "LaunchProfileProtocolVersion": { + "type": "string" + }, + "Platform": { + "type": "string" + }, + "RunContext": { + "type": "string" + }, + "Script": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Oam::Link": { + "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": { + "LabelTemplate": { + "type": "string" + }, + "ResourceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SinkIdentifier": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "LabelTemplate", + "ResourceTypes", + "SinkIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Oam::Link" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Oam::Sink": { + "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": { + "Name": { + "type": "string" + }, + "Policy": { + "type": "object" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Oam::Sink" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpenSearchServerless::AccessPolicy": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpenSearchServerless::AccessPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::OpenSearchServerless::Collection": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpenSearchServerless::Collection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpenSearchServerless::SecurityConfig": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SamlOptions": { + "$ref": "#/definitions/AWS::OpenSearchServerless::SecurityConfig.SamlConfigOptions" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpenSearchServerless::SecurityConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::OpenSearchServerless::SecurityConfig.SamlConfigOptions": { + "additionalProperties": false, + "properties": { + "GroupAttribute": { + "type": "string" + }, + "Metadata": { + "type": "string" + }, + "SessionTimeout": { + "type": "number" + }, + "UserAttribute": { + "type": "string" + } + }, + "required": [ + "Metadata" + ], + "type": "object" + }, + "AWS::OpenSearchServerless::SecurityPolicy": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Policy" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpenSearchServerless::SecurityPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpenSearchServerless::VpcEndpoint": { + "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": { + "Name": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "Name", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpenSearchServerless::VpcEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpenSearchService::Domain": { + "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": { + "AccessPolicies": { + "type": "object" + }, + "AdvancedOptions": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AdvancedSecurityOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput" + }, + "ClusterConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ClusterConfig" + }, + "CognitoOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.CognitoOptions" + }, + "DomainEndpointOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.DomainEndpointOptions" + }, + "DomainName": { + "type": "string" + }, + "EBSOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EBSOptions" + }, + "EncryptionAtRestOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.EncryptionAtRestOptions" + }, + "EngineVersion": { + "type": "string" + }, + "LogPublishingOptions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.LogPublishingOption" + } + }, + "type": "object" + }, + "NodeToNodeEncryptionOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions" + }, + "SnapshotOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.SnapshotOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.VPCOptions" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpenSearchService::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::OpenSearchService::Domain.AdvancedSecurityOptionsInput": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "InternalUserDatabaseEnabled": { + "type": "boolean" + }, + "MasterUserOptions": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.MasterUserOptions" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ClusterConfig": { + "additionalProperties": false, + "properties": { + "DedicatedMasterCount": { + "type": "number" + }, + "DedicatedMasterEnabled": { + "type": "boolean" + }, + "DedicatedMasterType": { + "type": "string" + }, + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "WarmCount": { + "type": "number" + }, + "WarmEnabled": { + "type": "boolean" + }, + "WarmType": { + "type": "string" + }, + "ZoneAwarenessConfig": { + "$ref": "#/definitions/AWS::OpenSearchService::Domain.ZoneAwarenessConfig" + }, + "ZoneAwarenessEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.CognitoOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "IdentityPoolId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "UserPoolId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.DomainEndpointOptions": { + "additionalProperties": false, + "properties": { + "CustomEndpoint": { + "type": "string" + }, + "CustomEndpointCertificateArn": { + "type": "string" + }, + "CustomEndpointEnabled": { + "type": "boolean" + }, + "EnforceHTTPS": { + "type": "boolean" + }, + "TLSSecurityPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.EBSOptions": { + "additionalProperties": false, + "properties": { + "EBSEnabled": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "Throughput": { + "type": "number" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.EncryptionAtRestOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + }, + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.LogPublishingOption": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.MasterUserOptions": { + "additionalProperties": false, + "properties": { + "MasterUserARN": { + "type": "string" + }, + "MasterUserName": { + "type": "string" + }, + "MasterUserPassword": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.NodeToNodeEncryptionOptions": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ServiceSoftwareOptions": { + "additionalProperties": false, + "properties": { + "AutomatedUpdateDate": { + "type": "string" + }, + "Cancellable": { + "type": "boolean" + }, + "CurrentVersion": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NewVersion": { + "type": "string" + }, + "OptionalDeployment": { + "type": "boolean" + }, + "UpdateAvailable": { + "type": "boolean" + }, + "UpdateStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.SnapshotOptions": { + "additionalProperties": false, + "properties": { + "AutomatedSnapshotStartHour": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.VPCOptions": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpenSearchService::Domain.ZoneAwarenessConfig": { + "additionalProperties": false, + "properties": { + "AvailabilityZoneCount": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpsWorks::App": { + "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": { + "AppSource": { + "$ref": "#/definitions/AWS::OpsWorks::App.Source" + }, + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "DataSources": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::App.DataSource" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableSsl": { + "type": "boolean" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::App.EnvironmentVariable" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Shortname": { + "type": "string" + }, + "SslConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::App.SslConfiguration" + }, + "StackId": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "StackId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::App" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::App.DataSource": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::App.EnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Secure": { + "type": "boolean" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::OpsWorks::App.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::App.SslConfiguration": { + "additionalProperties": false, + "properties": { + "Certificate": { + "type": "string" + }, + "Chain": { + "type": "string" + }, + "PrivateKey": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::ElasticLoadBalancerAttachment": { + "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": { + "ElasticLoadBalancerName": { + "type": "string" + }, + "LayerId": { + "type": "string" + } + }, + "required": [ + "ElasticLoadBalancerName", + "LayerId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::ElasticLoadBalancerAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Instance": { + "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": { + "AgentVersion": { + "type": "string" + }, + "AmiId": { + "type": "string" + }, + "Architecture": { + "type": "string" + }, + "AutoScalingType": { + "type": "string" + }, + "AvailabilityZone": { + "type": "string" + }, + "BlockDeviceMappings": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Instance.BlockDeviceMapping" + }, + "type": "array" + }, + "EbsOptimized": { + "type": "boolean" + }, + "ElasticIps": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Hostname": { + "type": "string" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "InstanceType": { + "type": "string" + }, + "LayerIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Os": { + "type": "string" + }, + "RootDeviceType": { + "type": "string" + }, + "SshKeyName": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + }, + "Tenancy": { + "type": "string" + }, + "TimeBasedAutoScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Instance.TimeBasedAutoScaling" + }, + "VirtualizationType": { + "type": "string" + }, + "Volumes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "InstanceType", + "LayerIds", + "StackId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Instance.BlockDeviceMapping": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "Ebs": { + "$ref": "#/definitions/AWS::OpsWorks::Instance.EbsBlockDevice" + }, + "NoDevice": { + "type": "string" + }, + "VirtualName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Instance.EbsBlockDevice": { + "additionalProperties": false, + "properties": { + "DeleteOnTermination": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "SnapshotId": { + "type": "string" + }, + "VolumeSize": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Instance.TimeBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "Friday": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Monday": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Saturday": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Sunday": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Thursday": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Tuesday": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Wednesday": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer": { + "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": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AutoAssignElasticIps": { + "type": "boolean" + }, + "AutoAssignPublicIps": { + "type": "boolean" + }, + "CustomInstanceProfileArn": { + "type": "string" + }, + "CustomJson": { + "type": "object" + }, + "CustomRecipes": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.Recipes" + }, + "CustomSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableAutoHealing": { + "type": "boolean" + }, + "InstallUpdatesOnBoot": { + "type": "boolean" + }, + "LifecycleEventConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.LifecycleEventConfiguration" + }, + "LoadBasedAutoScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.LoadBasedAutoScaling" + }, + "Name": { + "type": "string" + }, + "Packages": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Shortname": { + "type": "string" + }, + "StackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + }, + "UseEbsOptimizedInstances": { + "type": "boolean" + }, + "VolumeConfigurations": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.VolumeConfiguration" + }, + "type": "array" + } + }, + "required": [ + "AutoAssignElasticIps", + "AutoAssignPublicIps", + "EnableAutoHealing", + "Name", + "Shortname", + "StackId", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Layer" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Layer.AutoScalingThresholds": { + "additionalProperties": false, + "properties": { + "CpuThreshold": { + "type": "number" + }, + "IgnoreMetricsTime": { + "type": "number" + }, + "InstanceCount": { + "type": "number" + }, + "LoadThreshold": { + "type": "number" + }, + "MemoryThreshold": { + "type": "number" + }, + "ThresholdsWaitTime": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.LifecycleEventConfiguration": { + "additionalProperties": false, + "properties": { + "ShutdownEventConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.ShutdownEventConfiguration" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.LoadBasedAutoScaling": { + "additionalProperties": false, + "properties": { + "DownScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds" + }, + "Enable": { + "type": "boolean" + }, + "UpScaling": { + "$ref": "#/definitions/AWS::OpsWorks::Layer.AutoScalingThresholds" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.Recipes": { + "additionalProperties": false, + "properties": { + "Configure": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Deploy": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Setup": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Shutdown": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Undeploy": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.ShutdownEventConfiguration": { + "additionalProperties": false, + "properties": { + "DelayUntilElbConnectionsDrained": { + "type": "boolean" + }, + "ExecutionTimeout": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Layer.VolumeConfiguration": { + "additionalProperties": false, + "properties": { + "Encrypted": { + "type": "boolean" + }, + "Iops": { + "type": "number" + }, + "MountPoint": { + "type": "string" + }, + "NumberOfDisks": { + "type": "number" + }, + "RaidLevel": { + "type": "number" + }, + "Size": { + "type": "number" + }, + "VolumeType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack": { + "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": { + "AgentVersion": { + "type": "string" + }, + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ChefConfiguration": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ChefConfiguration" + }, + "CloneAppIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClonePermissions": { + "type": "boolean" + }, + "ConfigurationManager": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.StackConfigurationManager" + }, + "CustomCookbooksSource": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.Source" + }, + "CustomJson": { + "type": "object" + }, + "DefaultAvailabilityZone": { + "type": "string" + }, + "DefaultInstanceProfileArn": { + "type": "string" + }, + "DefaultOs": { + "type": "string" + }, + "DefaultRootDeviceType": { + "type": "string" + }, + "DefaultSshKeyName": { + "type": "string" + }, + "DefaultSubnetId": { + "type": "string" + }, + "EcsClusterArn": { + "type": "string" + }, + "ElasticIps": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.ElasticIp" + }, + "type": "array" + }, + "HostnameTheme": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RdsDbInstances": { + "items": { + "$ref": "#/definitions/AWS::OpsWorks::Stack.RdsDbInstance" + }, + "type": "array" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SourceStackId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseCustomCookbooks": { + "type": "boolean" + }, + "UseOpsworksSecurityGroups": { + "type": "boolean" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "DefaultInstanceProfileArn", + "Name", + "ServiceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Stack" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.ChefConfiguration": { + "additionalProperties": false, + "properties": { + "BerkshelfVersion": { + "type": "string" + }, + "ManageBerkshelf": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.ElasticIp": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.RdsDbInstance": { + "additionalProperties": false, + "properties": { + "DbPassword": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "RdsDbInstanceArn": { + "type": "string" + } + }, + "required": [ + "DbPassword", + "DbUser", + "RdsDbInstanceArn" + ], + "type": "object" + }, + "AWS::OpsWorks::Stack.Source": { + "additionalProperties": false, + "properties": { + "Password": { + "type": "string" + }, + "Revision": { + "type": "string" + }, + "SshKey": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Url": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::Stack.StackConfigurationManager": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::OpsWorks::UserProfile": { + "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": { + "AllowSelfManagement": { + "type": "boolean" + }, + "IamUserArn": { + "type": "string" + }, + "SshPublicKey": { + "type": "string" + }, + "SshUsername": { + "type": "string" + } + }, + "required": [ + "IamUserArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::UserProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorks::Volume": { + "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": { + "Ec2VolumeId": { + "type": "string" + }, + "MountPoint": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "StackId": { + "type": "string" + } + }, + "required": [ + "Ec2VolumeId", + "StackId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorks::Volume" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorksCM::Server": { + "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": { + "AssociatePublicIpAddress": { + "type": "boolean" + }, + "BackupId": { + "type": "string" + }, + "BackupRetentionCount": { + "type": "number" + }, + "CustomCertificate": { + "type": "string" + }, + "CustomDomain": { + "type": "string" + }, + "CustomPrivateKey": { + "type": "string" + }, + "DisableAutomatedBackup": { + "type": "boolean" + }, + "Engine": { + "type": "string" + }, + "EngineAttributes": { + "items": { + "$ref": "#/definitions/AWS::OpsWorksCM::Server.EngineAttribute" + }, + "type": "array" + }, + "EngineModel": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "InstanceProfileArn": { + "type": "string" + }, + "InstanceType": { + "type": "string" + }, + "KeyPair": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ServerName": { + "type": "string" + }, + "ServiceRoleArn": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceProfileArn", + "InstanceType", + "ServiceRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::OpsWorksCM::Server" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::OpsWorksCM::Server.EngineAttribute": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Organizations::Account": { + "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": { + "AccountName": { + "type": "string" + }, + "Email": { + "type": "string" + }, + "ParentIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RoleName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AccountName", + "Email" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Organizations::Account" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Organizations::OrganizationalUnit": { + "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": { + "Name": { + "type": "string" + }, + "ParentId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "ParentId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Organizations::OrganizationalUnit" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Organizations::Policy": { + "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": { + "Content": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Content", + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Organizations::Policy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Panorama::ApplicationInstance": { + "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": { + "ApplicationInstanceIdToReplace": { + "type": "string" + }, + "DefaultRuntimeContextDevice": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DeviceId": { + "type": "string" + }, + "ManifestOverridesPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestOverridesPayload" + }, + "ManifestPayload": { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance.ManifestPayload" + }, + "Name": { + "type": "string" + }, + "RuntimeRoleArn": { + "type": "string" + }, + "StatusFilter": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DefaultRuntimeContextDevice", + "ManifestPayload" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Panorama::ApplicationInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Panorama::ApplicationInstance.ManifestOverridesPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::ApplicationInstance.ManifestPayload": { + "additionalProperties": false, + "properties": { + "PayloadData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::Package": { + "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": { + "PackageName": { + "type": "string" + }, + "StorageLocation": { + "$ref": "#/definitions/AWS::Panorama::Package.StorageLocation" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PackageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Panorama::Package" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Panorama::Package.StorageLocation": { + "additionalProperties": false, + "properties": { + "BinaryPrefixLocation": { + "type": "string" + }, + "Bucket": { + "type": "string" + }, + "GeneratedPrefixLocation": { + "type": "string" + }, + "ManifestPrefixLocation": { + "type": "string" + }, + "RepoPrefixLocation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Panorama::PackageVersion": { + "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": { + "MarkLatest": { + "type": "boolean" + }, + "OwnerAccount": { + "type": "string" + }, + "PackageId": { + "type": "string" + }, + "PackageVersion": { + "type": "string" + }, + "PatchVersion": { + "type": "string" + }, + "UpdatedLatestPatchVersion": { + "type": "string" + } + }, + "required": [ + "PackageId", + "PackageVersion", + "PatchVersion" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Panorama::PackageVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Personalize::Dataset": { + "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": { + "DatasetGroupArn": { + "type": "string" + }, + "DatasetImportJob": { + "$ref": "#/definitions/AWS::Personalize::Dataset.DatasetImportJob" + }, + "DatasetType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SchemaArn": { + "type": "string" + } + }, + "required": [ + "DatasetGroupArn", + "DatasetType", + "Name", + "SchemaArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Personalize::Dataset" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Personalize::Dataset.DataSource": { + "additionalProperties": false, + "properties": { + "DataLocation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Personalize::Dataset.DatasetImportJob": { + "additionalProperties": false, + "properties": { + "DataSource": { + "$ref": "#/definitions/AWS::Personalize::Dataset.DataSource" + }, + "DatasetArn": { + "type": "string" + }, + "DatasetImportJobArn": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Personalize::DatasetGroup": { + "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": { + "Domain": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Personalize::DatasetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Personalize::Schema": { + "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": { + "Domain": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schema": { + "type": "string" + } + }, + "required": [ + "Name", + "Schema" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Personalize::Schema" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Personalize::Solution": { + "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": { + "DatasetGroupArn": { + "type": "string" + }, + "EventType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PerformAutoML": { + "type": "boolean" + }, + "PerformHPO": { + "type": "boolean" + }, + "RecipeArn": { + "type": "string" + }, + "SolutionConfig": { + "$ref": "#/definitions/AWS::Personalize::Solution.SolutionConfig" + } + }, + "required": [ + "DatasetGroupArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Personalize::Solution" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Personalize::Solution.AlgorithmHyperParameterRanges": { + "additionalProperties": false, + "properties": { + "CategoricalHyperParameterRanges": { + "items": { + "$ref": "#/definitions/AWS::Personalize::Solution.CategoricalHyperParameterRange" + }, + "type": "array" + }, + "ContinuousHyperParameterRanges": { + "items": { + "$ref": "#/definitions/AWS::Personalize::Solution.ContinuousHyperParameterRange" + }, + "type": "array" + }, + "IntegerHyperParameterRanges": { + "items": { + "$ref": "#/definitions/AWS::Personalize::Solution.IntegerHyperParameterRange" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.AutoMLConfig": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "RecipeList": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.CategoricalHyperParameterRange": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.ContinuousHyperParameterRange": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "number" + }, + "MinValue": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.HpoConfig": { + "additionalProperties": false, + "properties": { + "AlgorithmHyperParameterRanges": { + "$ref": "#/definitions/AWS::Personalize::Solution.AlgorithmHyperParameterRanges" + }, + "HpoObjective": { + "$ref": "#/definitions/AWS::Personalize::Solution.HpoObjective" + }, + "HpoResourceConfig": { + "$ref": "#/definitions/AWS::Personalize::Solution.HpoResourceConfig" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.HpoObjective": { + "additionalProperties": false, + "properties": { + "MetricName": { + "type": "string" + }, + "MetricRegex": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.HpoResourceConfig": { + "additionalProperties": false, + "properties": { + "MaxNumberOfTrainingJobs": { + "type": "string" + }, + "MaxParallelTrainingJobs": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.IntegerHyperParameterRange": { + "additionalProperties": false, + "properties": { + "MaxValue": { + "type": "number" + }, + "MinValue": { + "type": "number" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Personalize::Solution.SolutionConfig": { + "additionalProperties": false, + "properties": { + "AlgorithmHyperParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "AutoMLConfig": { + "$ref": "#/definitions/AWS::Personalize::Solution.AutoMLConfig" + }, + "EventValueThreshold": { + "type": "string" + }, + "FeatureTransformationParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "HpoConfig": { + "$ref": "#/definitions/AWS::Personalize::Solution.HpoConfig" + } + }, + "type": "object" + }, + "AWS::Pinpoint::ADMChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "ApplicationId", + "ClientId", + "ClientSecret" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::ADMChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSSandboxChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSSandboxChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSVoipChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSVoipChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::APNSVoipSandboxChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "BundleId": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "DefaultAuthenticationMethod": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "PrivateKey": { + "type": "string" + }, + "TeamId": { + "type": "string" + }, + "TokenKey": { + "type": "string" + }, + "TokenKeyId": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::APNSVoipSandboxChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::App": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::App" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::ApplicationSettings": { + "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": { + "ApplicationId": { + "type": "string" + }, + "CampaignHook": { + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.CampaignHook" + }, + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "Limits": { + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.Limits" + }, + "QuietTime": { + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings.QuietTime" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::ApplicationSettings" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::ApplicationSettings.CampaignHook": { + "additionalProperties": false, + "properties": { + "LambdaFunctionName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "WebUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::ApplicationSettings.Limits": { + "additionalProperties": false, + "properties": { + "Daily": { + "type": "number" + }, + "MaximumDuration": { + "type": "number" + }, + "MessagesPerSecond": { + "type": "number" + }, + "Total": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pinpoint::ApplicationSettings.QuietTime": { + "additionalProperties": false, + "properties": { + "End": { + "type": "string" + }, + "Start": { + "type": "string" + } + }, + "required": [ + "End", + "Start" + ], + "type": "object" + }, + "AWS::Pinpoint::BaiduChannel": { + "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": { + "ApiKey": { + "type": "string" + }, + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "SecretKey": { + "type": "string" + } + }, + "required": [ + "ApiKey", + "ApplicationId", + "SecretKey" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::BaiduChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::Campaign": { + "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": { + "AdditionalTreatments": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.WriteTreatmentResource" + }, + "type": "array" + }, + "ApplicationId": { + "type": "string" + }, + "CampaignHook": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignHook" + }, + "CustomDeliveryConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CustomDeliveryConfiguration" + }, + "Description": { + "type": "string" + }, + "HoldoutPercent": { + "type": "number" + }, + "IsPaused": { + "type": "boolean" + }, + "Limits": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Limits" + }, + "MessageConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration" + }, + "Name": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" + }, + "SegmentId": { + "type": "string" + }, + "SegmentVersion": { + "type": "number" + }, + "Tags": { + "type": "object" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration" + }, + "TreatmentDescription": { + "type": "string" + }, + "TreatmentName": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "Name", + "Schedule", + "SegmentId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::Campaign" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::Campaign.AttributeDimension": { + "additionalProperties": false, + "properties": { + "AttributeType": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignCustomMessage": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignEmailMessage": { + "additionalProperties": false, + "properties": { + "Body": { + "type": "string" + }, + "FromAddress": { + "type": "string" + }, + "HtmlBody": { + "type": "string" + }, + "Title": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignEventFilter": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.EventDimensions" + }, + "FilterType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignHook": { + "additionalProperties": false, + "properties": { + "LambdaFunctionName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "WebUrl": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignInAppMessage": { + "additionalProperties": false, + "properties": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageContent" + }, + "type": "array" + }, + "CustomConfig": { + "type": "object" + }, + "Layout": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CampaignSmsMessage": { + "additionalProperties": false, + "properties": { + "Body": { + "type": "string" + }, + "EntityId": { + "type": "string" + }, + "MessageType": { + "type": "string" + }, + "OriginationNumber": { + "type": "string" + }, + "SenderId": { + "type": "string" + }, + "TemplateId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.CustomDeliveryConfiguration": { + "additionalProperties": false, + "properties": { + "DeliveryUri": { + "type": "string" + }, + "EndpointTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.DefaultButtonConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BorderRadius": { + "type": "number" + }, + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + }, + "Text": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.EventDimensions": { + "additionalProperties": false, + "properties": { + "Attributes": { + "type": "object" + }, + "EventType": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.SetDimension" + }, + "Metrics": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageBodyConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageButton": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.DefaultButtonConfiguration" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.OverrideButtonConfiguration" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageBodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageHeaderConfig" + }, + "ImageUrl": { + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.InAppMessageButton" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.InAppMessageHeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Header": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.Limits": { + "additionalProperties": false, + "properties": { + "Daily": { + "type": "number" + }, + "MaximumDuration": { + "type": "number" + }, + "MessagesPerSecond": { + "type": "number" + }, + "Session": { + "type": "number" + }, + "Total": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.Message": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "ImageIconUrl": { + "type": "string" + }, + "ImageSmallIconUrl": { + "type": "string" + }, + "ImageUrl": { + "type": "string" + }, + "JsonBody": { + "type": "string" + }, + "MediaUrl": { + "type": "string" + }, + "RawContent": { + "type": "string" + }, + "SilentPush": { + "type": "boolean" + }, + "TimeToLive": { + "type": "number" + }, + "Title": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.MessageConfiguration": { + "additionalProperties": false, + "properties": { + "ADMMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + }, + "APNSMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + }, + "BaiduMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + }, + "CustomMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignCustomMessage" + }, + "DefaultMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + }, + "EmailMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEmailMessage" + }, + "GCMMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Message" + }, + "InAppMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignInAppMessage" + }, + "SMSMessage": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignSmsMessage" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.MetricDimension": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.QuietTime": { + "additionalProperties": false, + "properties": { + "End": { + "type": "string" + }, + "Start": { + "type": "string" + } + }, + "required": [ + "End", + "Start" + ], + "type": "object" + }, + "AWS::Pinpoint::Campaign.Schedule": { + "additionalProperties": false, + "properties": { + "EndTime": { + "type": "string" + }, + "EventFilter": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CampaignEventFilter" + }, + "Frequency": { + "type": "string" + }, + "IsLocalTime": { + "type": "boolean" + }, + "QuietTime": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.QuietTime" + }, + "StartTime": { + "type": "string" + }, + "TimeZone": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.SetDimension": { + "additionalProperties": false, + "properties": { + "DimensionType": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.Template": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.TemplateConfiguration": { + "additionalProperties": false, + "properties": { + "EmailTemplate": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template" + }, + "PushTemplate": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template" + }, + "SMSTemplate": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template" + }, + "VoiceTemplate": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Template" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Campaign.WriteTreatmentResource": { + "additionalProperties": false, + "properties": { + "CustomDeliveryConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.CustomDeliveryConfiguration" + }, + "MessageConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.MessageConfiguration" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.Schedule" + }, + "SizePercent": { + "type": "number" + }, + "TemplateConfiguration": { + "$ref": "#/definitions/AWS::Pinpoint::Campaign.TemplateConfiguration" + }, + "TreatmentDescription": { + "type": "string" + }, + "TreatmentName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::EmailChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "ConfigurationSet": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "FromAddress": { + "type": "string" + }, + "Identity": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "FromAddress", + "Identity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EmailTemplate": { + "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": { + "DefaultSubstitutions": { + "type": "string" + }, + "HtmlPart": { + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + }, + "TextPart": { + "type": "string" + } + }, + "required": [ + "Subject", + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EmailTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::EventStream": { + "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": { + "ApplicationId": { + "type": "string" + }, + "DestinationStreamArn": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "ApplicationId", + "DestinationStreamArn", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::EventStream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::GCMChannel": { + "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": { + "ApiKey": { + "type": "string" + }, + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "ApiKey", + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::GCMChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate": { + "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": { + "Content": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.InAppMessageContent" + }, + "type": "array" + }, + "CustomConfig": { + "type": "object" + }, + "Layout": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::InAppTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.BodyConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.ButtonConfig": { + "additionalProperties": false, + "properties": { + "Android": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" + }, + "DefaultConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration" + }, + "IOS": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" + }, + "Web": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.DefaultButtonConfiguration": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BorderRadius": { + "type": "number" + }, + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + }, + "Text": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.HeaderConfig": { + "additionalProperties": false, + "properties": { + "Alignment": { + "type": "string" + }, + "Header": { + "type": "string" + }, + "TextColor": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.InAppMessageContent": { + "additionalProperties": false, + "properties": { + "BackgroundColor": { + "type": "string" + }, + "BodyConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.BodyConfig" + }, + "HeaderConfig": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.HeaderConfig" + }, + "ImageUrl": { + "type": "string" + }, + "PrimaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + }, + "SecondaryBtn": { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate.ButtonConfig" + } + }, + "type": "object" + }, + "AWS::Pinpoint::InAppTemplate.OverrideButtonConfiguration": { + "additionalProperties": false, + "properties": { + "ButtonAction": { + "type": "string" + }, + "Link": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::PushTemplate": { + "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": { + "ADM": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate" + }, + "APNS": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.APNSPushNotificationTemplate" + }, + "Baidu": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate" + }, + "Default": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate" + }, + "DefaultSubstitutions": { + "type": "string" + }, + "GCM": { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::PushTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::PushTemplate.APNSPushNotificationTemplate": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "MediaUrl": { + "type": "string" + }, + "Sound": { + "type": "string" + }, + "Title": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::PushTemplate.AndroidPushNotificationTemplate": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "ImageIconUrl": { + "type": "string" + }, + "ImageUrl": { + "type": "string" + }, + "SmallImageIconUrl": { + "type": "string" + }, + "Sound": { + "type": "string" + }, + "Title": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::PushTemplate.DefaultPushNotificationTemplate": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "Sound": { + "type": "string" + }, + "Title": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::SMSChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "SenderId": { + "type": "string" + }, + "ShortCode": { + "type": "string" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::SMSChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment": { + "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": { + "ApplicationId": { + "type": "string" + }, + "Dimensions": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions" + }, + "Name": { + "type": "string" + }, + "SegmentGroups": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentGroups" + }, + "Tags": { + "type": "object" + } + }, + "required": [ + "ApplicationId", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::Segment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment.AttributeDimension": { + "additionalProperties": false, + "properties": { + "AttributeType": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Behavior": { + "additionalProperties": false, + "properties": { + "Recency": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Recency" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Coordinates": { + "additionalProperties": false, + "properties": { + "Latitude": { + "type": "number" + }, + "Longitude": { + "type": "number" + } + }, + "required": [ + "Latitude", + "Longitude" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment.Demographic": { + "additionalProperties": false, + "properties": { + "AppVersion": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + }, + "Channel": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + }, + "DeviceType": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + }, + "Make": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + }, + "Model": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + }, + "Platform": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.GPSPoint": { + "additionalProperties": false, + "properties": { + "Coordinates": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Coordinates" + }, + "RangeInKilometers": { + "type": "number" + } + }, + "required": [ + "Coordinates", + "RangeInKilometers" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment.Groups": { + "additionalProperties": false, + "properties": { + "Dimensions": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SegmentDimensions" + }, + "type": "array" + }, + "SourceSegments": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SourceSegments" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Location": { + "additionalProperties": false, + "properties": { + "Country": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.SetDimension" + }, + "GPSPoint": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.GPSPoint" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.Recency": { + "additionalProperties": false, + "properties": { + "Duration": { + "type": "string" + }, + "RecencyType": { + "type": "string" + } + }, + "required": [ + "Duration", + "RecencyType" + ], + "type": "object" + }, + "AWS::Pinpoint::Segment.SegmentDimensions": { + "additionalProperties": false, + "properties": { + "Attributes": { + "type": "object" + }, + "Behavior": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Behavior" + }, + "Demographic": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Demographic" + }, + "Location": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Location" + }, + "Metrics": { + "type": "object" + }, + "UserAttributes": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.SegmentGroups": { + "additionalProperties": false, + "properties": { + "Groups": { + "items": { + "$ref": "#/definitions/AWS::Pinpoint::Segment.Groups" + }, + "type": "array" + }, + "Include": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.SetDimension": { + "additionalProperties": false, + "properties": { + "DimensionType": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pinpoint::Segment.SourceSegments": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Version": { + "type": "number" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::Pinpoint::SmsTemplate": { + "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": { + "Body": { + "type": "string" + }, + "DefaultSubstitutions": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TemplateDescription": { + "type": "string" + }, + "TemplateName": { + "type": "string" + } + }, + "required": [ + "Body", + "TemplateName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::SmsTemplate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pinpoint::VoiceChannel": { + "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": { + "ApplicationId": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + } + }, + "required": [ + "ApplicationId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pinpoint::VoiceChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet": { + "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": { + "DeliveryOptions": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.DeliveryOptions" + }, + "Name": { + "type": "string" + }, + "ReputationOptions": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.ReputationOptions" + }, + "SendingOptions": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.SendingOptions" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.Tags" + }, + "type": "array" + }, + "TrackingOptions": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet.TrackingOptions" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::PinpointEmail::ConfigurationSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.DeliveryOptions": { + "additionalProperties": false, + "properties": { + "SendingPoolName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.ReputationOptions": { + "additionalProperties": false, + "properties": { + "ReputationMetricsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.SendingOptions": { + "additionalProperties": false, + "properties": { + "SendingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSet.TrackingOptions": { + "additionalProperties": false, + "properties": { + "CustomRedirectDomain": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination": { + "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": { + "ConfigurationSetName": { + "type": "string" + }, + "EventDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination" + }, + "EventDestinationName": { + "type": "string" + } + }, + "required": [ + "ConfigurationSetName", + "EventDestinationName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::PinpointEmail::ConfigurationSetEventDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.CloudWatchDestination": { + "additionalProperties": false, + "properties": { + "DimensionConfigurations": { + "items": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.DimensionConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.DimensionConfiguration": { + "additionalProperties": false, + "properties": { + "DefaultDimensionValue": { + "type": "string" + }, + "DimensionName": { + "type": "string" + }, + "DimensionValueSource": { + "type": "string" + } + }, + "required": [ + "DefaultDimensionValue", + "DimensionName", + "DimensionValueSource" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.EventDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.CloudWatchDestination" + }, + "Enabled": { + "type": "boolean" + }, + "KinesisFirehoseDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination" + }, + "MatchingEventTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PinpointDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination" + }, + "SnsDestination": { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination" + } + }, + "required": [ + "MatchingEventTypes" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.KinesisFirehoseDestination": { + "additionalProperties": false, + "properties": { + "DeliveryStreamArn": { + "type": "string" + }, + "IamRoleArn": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamArn", + "IamRoleArn" + ], + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.PinpointDestination": { + "additionalProperties": false, + "properties": { + "ApplicationArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::ConfigurationSetEventDestination.SnsDestination": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::PinpointEmail::DedicatedIpPool": { + "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": { + "PoolName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::PinpointEmail::DedicatedIpPool.Tags" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::PinpointEmail::DedicatedIpPool" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::PinpointEmail::DedicatedIpPool.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::Identity": { + "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": { + "DkimSigningEnabled": { + "type": "boolean" + }, + "FeedbackForwardingEnabled": { + "type": "boolean" + }, + "MailFromAttributes": { + "$ref": "#/definitions/AWS::PinpointEmail::Identity.MailFromAttributes" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::PinpointEmail::Identity.Tags" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::PinpointEmail::Identity" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::PinpointEmail::Identity.MailFromAttributes": { + "additionalProperties": false, + "properties": { + "BehaviorOnMxFailure": { + "type": "string" + }, + "MailFromDomain": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::PinpointEmail::Identity.Tags": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe": { + "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": { + "Description": { + "type": "string" + }, + "DesiredState": { + "type": "string" + }, + "Enrichment": { + "type": "string" + }, + "EnrichmentParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeEnrichmentParameters" + }, + "Name": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Source": { + "type": "string" + }, + "SourceParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceParameters" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Target": { + "type": "string" + }, + "TargetParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetParameters" + } + }, + "required": [ + "RoleArn", + "Source", + "Target" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Pipes::Pipe" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.BatchArrayProperties": { + "additionalProperties": false, + "properties": { + "Size": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.BatchContainerOverrides": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.BatchEnvironmentVariable" + }, + "type": "array" + }, + "InstanceType": { + "type": "string" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.BatchResourceRequirement" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.BatchEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.BatchJobDependency": { + "additionalProperties": false, + "properties": { + "JobId": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.BatchResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.BatchRetryStrategy": { + "additionalProperties": false, + "properties": { + "Attempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "number" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.EcsContainerOverride": { + "additionalProperties": false, + "properties": { + "Command": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Cpu": { + "type": "number" + }, + "Environment": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.EcsEnvironmentVariable" + }, + "type": "array" + }, + "EnvironmentFiles": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.EcsEnvironmentFile" + }, + "type": "array" + }, + "Memory": { + "type": "number" + }, + "MemoryReservation": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "ResourceRequirements": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.EcsResourceRequirement" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.EcsEnvironmentFile": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.EcsEnvironmentVariable": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.EcsEphemeralStorage": { + "additionalProperties": false, + "properties": { + "SizeInGiB": { + "type": "number" + } + }, + "required": [ + "SizeInGiB" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.EcsInferenceAcceleratorOverride": { + "additionalProperties": false, + "properties": { + "DeviceName": { + "type": "string" + }, + "DeviceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.EcsResourceRequirement": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.EcsTaskOverride": { + "additionalProperties": false, + "properties": { + "ContainerOverrides": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.EcsContainerOverride" + }, + "type": "array" + }, + "Cpu": { + "type": "string" + }, + "EphemeralStorage": { + "$ref": "#/definitions/AWS::Pipes::Pipe.EcsEphemeralStorage" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "InferenceAcceleratorOverrides": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.EcsInferenceAcceleratorOverride" + }, + "type": "array" + }, + "Memory": { + "type": "string" + }, + "TaskRoleArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.Filter": { + "additionalProperties": false, + "properties": { + "Pattern": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.FilterCriteria": { + "additionalProperties": false, + "properties": { + "Filters": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.Filter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.MQBrokerAccessCredentials": { + "additionalProperties": false, + "properties": { + "BasicAuth": { + "type": "string" + } + }, + "required": [ + "BasicAuth" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.MSKAccessCredentials": { + "additionalProperties": false, + "properties": { + "ClientCertificateTlsAuth": { + "type": "string" + }, + "SaslScram512Auth": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AWS::Pipes::Pipe.AwsVpcConfiguration" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeEnrichmentHttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "PathParameterValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "QueryStringParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeEnrichmentParameters": { + "additionalProperties": false, + "properties": { + "HttpParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeEnrichmentHttpParameters" + }, + "InputTemplate": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceActiveMQBrokerParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "Credentials": { + "$ref": "#/definitions/AWS::Pipes::Pipe.MQBrokerAccessCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + }, + "QueueName": { + "type": "string" + } + }, + "required": [ + "Credentials", + "QueueName" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceDynamoDBStreamParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Pipes::Pipe.DeadLetterConfig" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + }, + "MaximumRecordAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + }, + "OnPartialBatchItemFailure": { + "type": "string" + }, + "ParallelizationFactor": { + "type": "number" + }, + "StartingPosition": { + "type": "string" + } + }, + "required": [ + "StartingPosition" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceKinesisStreamParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Pipes::Pipe.DeadLetterConfig" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + }, + "MaximumRecordAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + }, + "OnPartialBatchItemFailure": { + "type": "string" + }, + "ParallelizationFactor": { + "type": "number" + }, + "StartingPosition": { + "type": "string" + }, + "StartingPositionTimestamp": { + "type": "string" + } + }, + "required": [ + "StartingPosition" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceManagedStreamingKafkaParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "ConsumerGroupID": { + "type": "string" + }, + "Credentials": { + "$ref": "#/definitions/AWS::Pipes::Pipe.MSKAccessCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + }, + "StartingPosition": { + "type": "string" + }, + "TopicName": { + "type": "string" + } + }, + "required": [ + "TopicName" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceParameters": { + "additionalProperties": false, + "properties": { + "ActiveMQBrokerParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceActiveMQBrokerParameters" + }, + "DynamoDBStreamParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceDynamoDBStreamParameters" + }, + "FilterCriteria": { + "$ref": "#/definitions/AWS::Pipes::Pipe.FilterCriteria" + }, + "KinesisStreamParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceKinesisStreamParameters" + }, + "ManagedStreamingKafkaParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceManagedStreamingKafkaParameters" + }, + "RabbitMQBrokerParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceRabbitMQBrokerParameters" + }, + "SelfManagedKafkaParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceSelfManagedKafkaParameters" + }, + "SqsQueueParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeSourceSqsQueueParameters" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceRabbitMQBrokerParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "Credentials": { + "$ref": "#/definitions/AWS::Pipes::Pipe.MQBrokerAccessCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + }, + "QueueName": { + "type": "string" + }, + "VirtualHost": { + "type": "string" + } + }, + "required": [ + "Credentials", + "QueueName" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceSelfManagedKafkaParameters": { + "additionalProperties": false, + "properties": { + "AdditionalBootstrapServers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BatchSize": { + "type": "number" + }, + "ConsumerGroupID": { + "type": "string" + }, + "Credentials": { + "$ref": "#/definitions/AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationCredentials" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + }, + "ServerRootCaCertificate": { + "type": "string" + }, + "StartingPosition": { + "type": "string" + }, + "TopicName": { + "type": "string" + }, + "Vpc": { + "$ref": "#/definitions/AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationVpc" + } + }, + "required": [ + "TopicName" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeSourceSqsQueueParameters": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "type": "number" + }, + "MaximumBatchingWindowInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetBatchJobParameters": { + "additionalProperties": false, + "properties": { + "ArrayProperties": { + "$ref": "#/definitions/AWS::Pipes::Pipe.BatchArrayProperties" + }, + "ContainerOverrides": { + "$ref": "#/definitions/AWS::Pipes::Pipe.BatchContainerOverrides" + }, + "DependsOn": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.BatchJobDependency" + }, + "type": "array" + }, + "JobDefinition": { + "type": "string" + }, + "JobName": { + "type": "string" + }, + "Parameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "RetryStrategy": { + "$ref": "#/definitions/AWS::Pipes::Pipe.BatchRetryStrategy" + } + }, + "required": [ + "JobDefinition", + "JobName" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetCloudWatchLogsParameters": { + "additionalProperties": false, + "properties": { + "LogStreamName": { + "type": "string" + }, + "Timestamp": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetEcsTaskParameters": { + "additionalProperties": false, + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.CapacityProviderStrategyItem" + }, + "type": "array" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "Group": { + "type": "string" + }, + "LaunchType": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::Pipes::Pipe.NetworkConfiguration" + }, + "Overrides": { + "$ref": "#/definitions/AWS::Pipes::Pipe.EcsTaskOverride" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategy": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "type": "string" + }, + "PropagateTags": { + "type": "string" + }, + "ReferenceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TaskCount": { + "type": "number" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetEventBridgeEventBusParameters": { + "additionalProperties": false, + "properties": { + "DetailType": { + "type": "string" + }, + "EndpointId": { + "type": "string" + }, + "Resources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Source": { + "type": "string" + }, + "Time": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetHttpParameters": { + "additionalProperties": false, + "properties": { + "HeaderParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "PathParameterValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "QueryStringParameters": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetKinesisStreamParameters": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + } + }, + "required": [ + "PartitionKey" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetLambdaFunctionParameters": { + "additionalProperties": false, + "properties": { + "InvocationType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetParameters": { + "additionalProperties": false, + "properties": { + "BatchJobParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetBatchJobParameters" + }, + "CloudWatchLogsParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetCloudWatchLogsParameters" + }, + "EcsTaskParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetEcsTaskParameters" + }, + "EventBridgeEventBusParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetEventBridgeEventBusParameters" + }, + "HttpParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetHttpParameters" + }, + "InputTemplate": { + "type": "string" + }, + "KinesisStreamParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetKinesisStreamParameters" + }, + "LambdaFunctionParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetLambdaFunctionParameters" + }, + "RedshiftDataParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetRedshiftDataParameters" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetSageMakerPipelineParameters" + }, + "SqsQueueParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetSqsQueueParameters" + }, + "StepFunctionStateMachineParameters": { + "$ref": "#/definitions/AWS::Pipes::Pipe.PipeTargetStateMachineParameters" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetRedshiftDataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "DbUser": { + "type": "string" + }, + "SecretManagerArn": { + "type": "string" + }, + "Sqls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StatementName": { + "type": "string" + }, + "WithEvent": { + "type": "boolean" + } + }, + "required": [ + "Database", + "Sqls" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetSageMakerPipelineParameters": { + "additionalProperties": false, + "properties": { + "PipelineParameterList": { + "items": { + "$ref": "#/definitions/AWS::Pipes::Pipe.SageMakerPipelineParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetSqsQueueParameters": { + "additionalProperties": false, + "properties": { + "MessageDeduplicationId": { + "type": "string" + }, + "MessageGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PipeTargetStateMachineParameters": { + "additionalProperties": false, + "properties": { + "InvocationType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.SageMakerPipelineParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationCredentials": { + "additionalProperties": false, + "properties": { + "BasicAuth": { + "type": "string" + }, + "ClientCertificateTlsAuth": { + "type": "string" + }, + "SaslScram256Auth": { + "type": "string" + }, + "SaslScram512Auth": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Pipes::Pipe.SelfManagedKafkaAccessConfigurationVpc": { + "additionalProperties": false, + "properties": { + "SecurityGroup": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::QLDB::Ledger": { + "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": { + "DeletionProtection": { + "type": "boolean" + }, + "KmsKey": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "PermissionsMode": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PermissionsMode" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QLDB::Ledger" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::QLDB::Stream": { + "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": { + "ExclusiveEndTime": { + "type": "string" + }, + "InclusiveStartTime": { + "type": "string" + }, + "KinesisConfiguration": { + "$ref": "#/definitions/AWS::QLDB::Stream.KinesisConfiguration" + }, + "LedgerName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "StreamName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InclusiveStartTime", + "KinesisConfiguration", + "LedgerName", + "RoleArn", + "StreamName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QLDB::Stream" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::QLDB::Stream.KinesisConfiguration": { + "additionalProperties": false, + "properties": { + "AggregationEnabled": { + "type": "boolean" + }, + "StreamArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis": { + "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": { + "AnalysisId": { + "type": "string" + }, + "AwsAccountId": { + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisError" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.ResourcePermission" + }, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThemeArn": { + "type": "string" + } + }, + "required": [ + "AnalysisId", + "AwsAccountId", + "SourceEntity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QuickSight::Analysis" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.AnalysisError": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.AnalysisSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.AnalysisSourceTemplate" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.AnalysisSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.DataSetReference" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.DateTimeParameter" + }, + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.DecimalParameter" + }, + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.IntegerParameter" + }, + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Analysis.StringParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::Analysis.Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SheetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Analysis.StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard": { + "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": { + "AwsAccountId": { + "type": "string" + }, + "DashboardId": { + "type": "string" + }, + "DashboardPublishOptions": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardPublishOptions" + }, + "Name": { + "type": "string" + }, + "Parameters": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.Parameters" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.ResourcePermission" + }, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThemeArn": { + "type": "string" + }, + "VersionDescription": { + "type": "string" + } + }, + "required": [ + "AwsAccountId", + "DashboardId", + "SourceEntity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QuickSight::Dashboard" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.AdHocFilteringOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.DashboardError": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.DashboardPublishOptions": { + "additionalProperties": false, + "properties": { + "AdHocFilteringOption": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.AdHocFilteringOption" + }, + "ExportToCSVOption": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.ExportToCSVOption" + }, + "SheetControlsOption": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.SheetControlsOption" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.DashboardSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceTemplate": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardSourceTemplate" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.DashboardSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DataSetReference" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.DashboardVersion": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "CreatedTime": { + "type": "string" + }, + "DataSetArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DashboardError" + }, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.Sheet" + }, + "type": "array" + }, + "SourceEntityArn": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "ThemeArn": { + "type": "string" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.DateTimeParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.DecimalParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.ExportToCSVOption": { + "additionalProperties": false, + "properties": { + "AvailabilityStatus": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.IntegerParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "number" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.Parameters": { + "additionalProperties": false, + "properties": { + "DateTimeParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DateTimeParameter" + }, + "type": "array" + }, + "DecimalParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.DecimalParameter" + }, + "type": "array" + }, + "IntegerParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.IntegerParameter" + }, + "type": "array" + }, + "StringParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Dashboard.StringParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::Dashboard.Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SheetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.SheetControlsOption": { + "additionalProperties": false, + "properties": { + "VisibilityState": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Dashboard.StringParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Values" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet": { + "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": { + "AwsAccountId": { + "type": "string" + }, + "ColumnGroups": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnGroup" + }, + "type": "array" + }, + "ColumnLevelPermissionRules": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnLevelPermissionRule" + }, + "type": "array" + }, + "DataSetId": { + "type": "string" + }, + "DataSetUsageConfiguration": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.DataSetUsageConfiguration" + }, + "FieldFolders": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.FieldFolder" + } + }, + "type": "object" + }, + "ImportMode": { + "type": "string" + }, + "IngestionWaitPolicy": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.IngestionWaitPolicy" + }, + "LogicalTableMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTable" + } + }, + "type": "object" + }, + "Name": { + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ResourcePermission" + }, + "type": "array" + }, + "PhysicalTableMap": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.PhysicalTable" + } + }, + "type": "object" + }, + "RowLevelPermissionDataSet": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.RowLevelPermissionDataSet" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QuickSight::DataSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.CalculatedColumn": { + "additionalProperties": false, + "properties": { + "ColumnId": { + "type": "string" + }, + "ColumnName": { + "type": "string" + }, + "Expression": { + "type": "string" + } + }, + "required": [ + "ColumnId", + "ColumnName", + "Expression" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.CastColumnTypeOperation": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "NewColumnType": { + "type": "string" + } + }, + "required": [ + "ColumnName", + "NewColumnType" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnDescription": { + "additionalProperties": false, + "properties": { + "Text": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnGroup": { + "additionalProperties": false, + "properties": { + "GeoSpatialColumnGroup": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.GeoSpatialColumnGroup" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnLevelPermissionRule": { + "additionalProperties": false, + "properties": { + "ColumnNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ColumnTag": { + "additionalProperties": false, + "properties": { + "ColumnDescription": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnDescription" + }, + "ColumnGeographicRole": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.CreateColumnsOperation": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CalculatedColumn" + }, + "type": "array" + } + }, + "required": [ + "Columns" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.CustomSql": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" + }, + "type": "array" + }, + "DataSourceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SqlQuery": { + "type": "string" + } + }, + "required": [ + "Columns", + "DataSourceArn", + "Name", + "SqlQuery" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.DataSetUsageConfiguration": { + "additionalProperties": false, + "properties": { + "DisableUseAsDirectQuerySource": { + "type": "boolean" + }, + "DisableUseAsImportedSource": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.FieldFolder": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.FilterOperation": { + "additionalProperties": false, + "properties": { + "ConditionExpression": { + "type": "string" + } + }, + "required": [ + "ConditionExpression" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.GeoSpatialColumnGroup": { + "additionalProperties": false, + "properties": { + "Columns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CountryCode": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Columns", + "Name" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.IngestionWaitPolicy": { + "additionalProperties": false, + "properties": { + "IngestionWaitTimeInHours": { + "type": "number" + }, + "WaitForSpiceIngestion": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.InputColumn": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.JoinInstruction": { + "additionalProperties": false, + "properties": { + "LeftJoinKeyProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties" + }, + "LeftOperand": { + "type": "string" + }, + "OnClause": { + "type": "string" + }, + "RightJoinKeyProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinKeyProperties" + }, + "RightOperand": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "LeftOperand", + "OnClause", + "RightOperand", + "Type" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.JoinKeyProperties": { + "additionalProperties": false, + "properties": { + "UniqueKey": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.LogicalTable": { + "additionalProperties": false, + "properties": { + "Alias": { + "type": "string" + }, + "DataTransforms": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.TransformOperation" + }, + "type": "array" + }, + "Source": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.LogicalTableSource" + } + }, + "required": [ + "Alias", + "Source" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.LogicalTableSource": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "JoinInstruction": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.JoinInstruction" + }, + "PhysicalTableId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.OutputColumn": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.PhysicalTable": { + "additionalProperties": false, + "properties": { + "CustomSql": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CustomSql" + }, + "RelationalTable": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.RelationalTable" + }, + "S3Source": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.S3Source" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.ProjectOperation": { + "additionalProperties": false, + "properties": { + "ProjectedColumns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ProjectedColumns" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.RelationalTable": { + "additionalProperties": false, + "properties": { + "Catalog": { + "type": "string" + }, + "DataSourceArn": { + "type": "string" + }, + "InputColumns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Schema": { + "type": "string" + } + }, + "required": [ + "DataSourceArn", + "InputColumns", + "Name" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.RenameColumnOperation": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "type": "string" + }, + "NewColumnName": { + "type": "string" + } + }, + "required": [ + "ColumnName", + "NewColumnName" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.RowLevelPermissionDataSet": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "FormatVersion": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "PermissionPolicy": { + "type": "string" + } + }, + "required": [ + "Arn", + "PermissionPolicy" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.S3Source": { + "additionalProperties": false, + "properties": { + "DataSourceArn": { + "type": "string" + }, + "InputColumns": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.InputColumn" + }, + "type": "array" + }, + "UploadSettings": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.UploadSettings" + } + }, + "required": [ + "DataSourceArn", + "InputColumns" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.TagColumnOperation": { + "additionalProperties": false, + "properties": { + "ColumnName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ColumnTag" + }, + "type": "array" + } + }, + "required": [ + "ColumnName", + "Tags" + ], + "type": "object" + }, + "AWS::QuickSight::DataSet.TransformOperation": { + "additionalProperties": false, + "properties": { + "CastColumnTypeOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CastColumnTypeOperation" + }, + "CreateColumnsOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.CreateColumnsOperation" + }, + "FilterOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.FilterOperation" + }, + "ProjectOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.ProjectOperation" + }, + "RenameColumnOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.RenameColumnOperation" + }, + "TagColumnOperation": { + "$ref": "#/definitions/AWS::QuickSight::DataSet.TagColumnOperation" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSet.UploadSettings": { + "additionalProperties": false, + "properties": { + "ContainsHeader": { + "type": "boolean" + }, + "Delimiter": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "StartFromRow": { + "type": "number" + }, + "TextQualifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource": { + "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": { + "AlternateDataSourceParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters" + }, + "type": "array" + }, + "AwsAccountId": { + "type": "string" + }, + "Credentials": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceCredentials" + }, + "DataSourceId": { + "type": "string" + }, + "DataSourceParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters" + }, + "ErrorInfo": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceErrorInfo" + }, + "Name": { + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.ResourcePermission" + }, + "type": "array" + }, + "SslProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SslProperties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + }, + "VpcConnectionProperties": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.VpcConnectionProperties" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QuickSight::DataSource" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.AmazonElasticsearchParameters": { + "additionalProperties": false, + "properties": { + "Domain": { + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.AmazonOpenSearchParameters": { + "additionalProperties": false, + "properties": { + "Domain": { + "type": "string" + } + }, + "required": [ + "Domain" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.AthenaParameters": { + "additionalProperties": false, + "properties": { + "WorkGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.AuroraParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.AuroraPostgreSqlParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.CredentialPair": { + "additionalProperties": false, + "properties": { + "AlternateDataSourceParameters": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DataSourceParameters" + }, + "type": "array" + }, + "Password": { + "type": "string" + }, + "Username": { + "type": "string" + } + }, + "required": [ + "Password", + "Username" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.DataSourceCredentials": { + "additionalProperties": false, + "properties": { + "CopySourceArn": { + "type": "string" + }, + "CredentialPair": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.CredentialPair" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.DataSourceErrorInfo": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.DataSourceParameters": { + "additionalProperties": false, + "properties": { + "AmazonElasticsearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonElasticsearchParameters" + }, + "AmazonOpenSearchParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AmazonOpenSearchParameters" + }, + "AthenaParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AthenaParameters" + }, + "AuroraParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraParameters" + }, + "AuroraPostgreSqlParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.AuroraPostgreSqlParameters" + }, + "DatabricksParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.DatabricksParameters" + }, + "MariaDbParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.MariaDbParameters" + }, + "MySqlParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.MySqlParameters" + }, + "OracleParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.OracleParameters" + }, + "PostgreSqlParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.PostgreSqlParameters" + }, + "PrestoParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.PrestoParameters" + }, + "RdsParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.RdsParameters" + }, + "RedshiftParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.RedshiftParameters" + }, + "S3Parameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.S3Parameters" + }, + "SnowflakeParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SnowflakeParameters" + }, + "SparkParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SparkParameters" + }, + "SqlServerParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.SqlServerParameters" + }, + "TeradataParameters": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.TeradataParameters" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.DatabricksParameters": { + "additionalProperties": false, + "properties": { + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "SqlEndpointPath": { + "type": "string" + } + }, + "required": [ + "Host", + "Port", + "SqlEndpointPath" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.ManifestFileLocation": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.MariaDbParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.MySqlParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.OracleParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.PostgreSqlParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.PrestoParameters": { + "additionalProperties": false, + "properties": { + "Catalog": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Catalog", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.RdsParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "InstanceId": { + "type": "string" + } + }, + "required": [ + "Database", + "InstanceId" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.RedshiftParameters": { + "additionalProperties": false, + "properties": { + "ClusterId": { + "type": "string" + }, + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.S3Parameters": { + "additionalProperties": false, + "properties": { + "ManifestFileLocation": { + "$ref": "#/definitions/AWS::QuickSight::DataSource.ManifestFileLocation" + } + }, + "required": [ + "ManifestFileLocation" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SnowflakeParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Warehouse": { + "type": "string" + } + }, + "required": [ + "Database", + "Host", + "Warehouse" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SparkParameters": { + "additionalProperties": false, + "properties": { + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SqlServerParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.SslProperties": { + "additionalProperties": false, + "properties": { + "DisableSsl": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::DataSource.TeradataParameters": { + "additionalProperties": false, + "properties": { + "Database": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Port": { + "type": "number" + } + }, + "required": [ + "Database", + "Host", + "Port" + ], + "type": "object" + }, + "AWS::QuickSight::DataSource.VpcConnectionProperties": { + "additionalProperties": false, + "properties": { + "VpcConnectionArn": { + "type": "string" + } + }, + "required": [ + "VpcConnectionArn" + ], + "type": "object" + }, + "AWS::QuickSight::Template": { + "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": { + "AwsAccountId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.ResourcePermission" + }, + "type": "array" + }, + "SourceEntity": { + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceEntity" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TemplateId": { + "type": "string" + }, + "VersionDescription": { + "type": "string" + } + }, + "required": [ + "AwsAccountId", + "SourceEntity", + "TemplateId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QuickSight::Template" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::QuickSight::Template.ColumnGroupColumnSchema": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.ColumnGroupSchema": { + "additionalProperties": false, + "properties": { + "ColumnGroupColumnSchemaList": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupColumnSchema" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.ColumnSchema": { + "additionalProperties": false, + "properties": { + "DataType": { + "type": "string" + }, + "GeographicRole": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.DataSetConfiguration": { + "additionalProperties": false, + "properties": { + "ColumnGroupSchemaList": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.ColumnGroupSchema" + }, + "type": "array" + }, + "DataSetSchema": { + "$ref": "#/definitions/AWS::QuickSight::Template.DataSetSchema" + }, + "Placeholder": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.DataSetReference": { + "additionalProperties": false, + "properties": { + "DataSetArn": { + "type": "string" + }, + "DataSetPlaceholder": { + "type": "string" + } + }, + "required": [ + "DataSetArn", + "DataSetPlaceholder" + ], + "type": "object" + }, + "AWS::QuickSight::Template.DataSetSchema": { + "additionalProperties": false, + "properties": { + "ColumnSchemaList": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.ColumnSchema" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::Template.Sheet": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SheetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.TemplateError": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.TemplateSourceAnalysis": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DataSetReferences": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.DataSetReference" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "DataSetReferences" + ], + "type": "object" + }, + "AWS::QuickSight::Template.TemplateSourceEntity": { + "additionalProperties": false, + "properties": { + "SourceAnalysis": { + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceAnalysis" + }, + "SourceTemplate": { + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateSourceTemplate" + } + }, + "type": "object" + }, + "AWS::QuickSight::Template.TemplateSourceTemplate": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::QuickSight::Template.TemplateVersion": { + "additionalProperties": false, + "properties": { + "CreatedTime": { + "type": "string" + }, + "DataSetConfigurations": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.DataSetConfiguration" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.TemplateError" + }, + "type": "array" + }, + "Sheets": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Template.Sheet" + }, + "type": "array" + }, + "SourceEntityArn": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "ThemeArn": { + "type": "string" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme": { + "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": { + "AwsAccountId": { + "type": "string" + }, + "BaseThemeId": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration" + }, + "Name": { + "type": "string" + }, + "Permissions": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Theme.ResourcePermission" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "ThemeId": { + "type": "string" + }, + "VersionDescription": { + "type": "string" + } + }, + "required": [ + "AwsAccountId", + "ThemeId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::QuickSight::Theme" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::QuickSight::Theme.BorderStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.DataColorPalette": { + "additionalProperties": false, + "properties": { + "Colors": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EmptyFillColor": { + "type": "string" + }, + "MinMaxGradient": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.Font": { + "additionalProperties": false, + "properties": { + "FontFamily": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.GutterStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.MarginStyle": { + "additionalProperties": false, + "properties": { + "Show": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.ResourcePermission": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principal": { + "type": "string" + } + }, + "required": [ + "Actions", + "Principal" + ], + "type": "object" + }, + "AWS::QuickSight::Theme.SheetStyle": { + "additionalProperties": false, + "properties": { + "Tile": { + "$ref": "#/definitions/AWS::QuickSight::Theme.TileStyle" + }, + "TileLayout": { + "$ref": "#/definitions/AWS::QuickSight::Theme.TileLayoutStyle" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.ThemeConfiguration": { + "additionalProperties": false, + "properties": { + "DataColorPalette": { + "$ref": "#/definitions/AWS::QuickSight::Theme.DataColorPalette" + }, + "Sheet": { + "$ref": "#/definitions/AWS::QuickSight::Theme.SheetStyle" + }, + "Typography": { + "$ref": "#/definitions/AWS::QuickSight::Theme.Typography" + }, + "UIColorPalette": { + "$ref": "#/definitions/AWS::QuickSight::Theme.UIColorPalette" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.ThemeError": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.ThemeVersion": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "BaseThemeId": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeConfiguration" + }, + "CreatedTime": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Errors": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Theme.ThemeError" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "VersionNumber": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.TileLayoutStyle": { + "additionalProperties": false, + "properties": { + "Gutter": { + "$ref": "#/definitions/AWS::QuickSight::Theme.GutterStyle" + }, + "Margin": { + "$ref": "#/definitions/AWS::QuickSight::Theme.MarginStyle" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.TileStyle": { + "additionalProperties": false, + "properties": { + "Border": { + "$ref": "#/definitions/AWS::QuickSight::Theme.BorderStyle" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.Typography": { + "additionalProperties": false, + "properties": { + "FontFamilies": { + "items": { + "$ref": "#/definitions/AWS::QuickSight::Theme.Font" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::QuickSight::Theme.UIColorPalette": { + "additionalProperties": false, + "properties": { + "Accent": { + "type": "string" + }, + "AccentForeground": { + "type": "string" + }, + "Danger": { + "type": "string" + }, + "DangerForeground": { + "type": "string" + }, + "Dimension": { + "type": "string" + }, + "DimensionForeground": { + "type": "string" + }, + "Measure": { + "type": "string" + }, + "MeasureForeground": { + "type": "string" + }, + "PrimaryBackground": { + "type": "string" + }, + "PrimaryForeground": { + "type": "string" + }, + "SecondaryBackground": { + "type": "string" + }, + "SecondaryForeground": { + "type": "string" + }, + "Success": { + "type": "string" + }, + "SuccessForeground": { + "type": "string" + }, + "Warning": { + "type": "string" + }, + "WarningForeground": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RAM::ResourceShare": { + "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": { + "AllowExternalPrincipals": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "PermissionArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Principals": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RAM::ResourceShare" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBCluster": { + "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": { + "AllocatedStorage": { + "type": "number" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBCluster.DBClusterRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZones": { + "items": { + "type": "string" + }, + "type": "array" + }, + "BacktrackWindow": { + "type": "number" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterInstanceClass": { + "type": "string" + }, + "DBClusterParameterGroupName": { + "type": "string" + }, + "DBInstanceParameterGroupName": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DBSystemId": { + "type": "string" + }, + "DatabaseName": { + "type": "string" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableHttpEndpoint": { + "type": "boolean" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "Engine": { + "type": "string" + }, + "EngineMode": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "type": "string" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/AWS::RDS::DBCluster.MasterUserSecret" + }, + "MasterUsername": { + "type": "string" + }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "PerformanceInsightsEnabled": { + "type": "boolean" + }, + "PerformanceInsightsKmsKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, + "Port": { + "type": "number" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicationSourceIdentifier": { + "type": "string" + }, + "RestoreType": { + "type": "string" + }, + "ScalingConfiguration": { + "$ref": "#/definitions/AWS::RDS::DBCluster.ScalingConfiguration" + }, + "ServerlessV2ScalingConfiguration": { + "$ref": "#/definitions/AWS::RDS::DBCluster.ServerlessV2ScalingConfiguration" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RDS::DBCluster.DBClusterRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "AWS::RDS::DBCluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBCluster.MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBCluster.ReadEndpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBCluster.ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "AutoPause": { + "type": "boolean" + }, + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + }, + "SecondsBeforeTimeout": { + "type": "number" + }, + "SecondsUntilAutoPause": { + "type": "number" + }, + "TimeoutAction": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBCluster.ServerlessV2ScalingConfiguration": { + "additionalProperties": false, + "properties": { + "MaxCapacity": { + "type": "number" + }, + "MinCapacity": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::RDS::DBClusterParameterGroup": { + "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": { + "DBClusterParameterGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family", + "Parameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBInstance": { + "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": { + "AllocatedStorage": { + "type": "string" + }, + "AllowMajorVersionUpgrade": { + "type": "boolean" + }, + "AssociatedRoles": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBInstance.DBInstanceRole" + }, + "type": "array" + }, + "AutoMinorVersionUpgrade": { + "type": "boolean" + }, + "AvailabilityZone": { + "type": "string" + }, + "BackupRetentionPeriod": { + "type": "number" + }, + "CACertificateIdentifier": { + "type": "string" + }, + "CharacterSetName": { + "type": "string" + }, + "CopyTagsToSnapshot": { + "type": "boolean" + }, + "CustomIAMInstanceProfile": { + "type": "string" + }, + "DBClusterIdentifier": { + "type": "string" + }, + "DBClusterSnapshotIdentifier": { + "type": "string" + }, + "DBInstanceClass": { + "type": "string" + }, + "DBInstanceIdentifier": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "DBParameterGroupName": { + "type": "string" + }, + "DBSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DBSnapshotIdentifier": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "DeleteAutomatedBackups": { + "type": "boolean" + }, + "DeletionProtection": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "DomainIAMRoleName": { + "type": "string" + }, + "EnableCloudwatchLogsExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableIAMDatabaseAuthentication": { + "type": "boolean" + }, + "EnablePerformanceInsights": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/AWS::RDS::DBInstance.Endpoint" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "Iops": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + }, + "LicenseModel": { + "type": "string" + }, + "ManageMasterUserPassword": { + "type": "boolean" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUserSecret": { + "$ref": "#/definitions/AWS::RDS::DBInstance.MasterUserSecret" + }, + "MasterUsername": { + "type": "string" + }, + "MaxAllocatedStorage": { + "type": "number" + }, + "MonitoringInterval": { + "type": "number" + }, + "MonitoringRoleArn": { + "type": "string" + }, + "MultiAZ": { + "type": "boolean" + }, + "NcharCharacterSetName": { + "type": "string" + }, + "NetworkType": { + "type": "string" + }, + "OptionGroupName": { + "type": "string" + }, + "PerformanceInsightsKMSKeyId": { + "type": "string" + }, + "PerformanceInsightsRetentionPeriod": { + "type": "number" + }, + "Port": { + "type": "string" + }, + "PreferredBackupWindow": { + "type": "string" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "ProcessorFeatures": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBInstance.ProcessorFeature" + }, + "type": "array" + }, + "PromotionTier": { + "type": "number" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ReplicaMode": { + "type": "string" + }, + "RestoreTime": { + "type": "string" + }, + "SourceDBInstanceAutomatedBackupsArn": { + "type": "string" + }, + "SourceDBInstanceIdentifier": { + "type": "string" + }, + "SourceDbiResourceId": { + "type": "string" + }, + "SourceRegion": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + }, + "StorageThroughput": { + "type": "number" + }, + "StorageType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Timezone": { + "type": "string" + }, + "UseDefaultProcessorFeatures": { + "type": "boolean" + }, + "UseLatestRestorableTime": { + "type": "boolean" + }, + "VPCSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RDS::DBInstance.DBInstanceRole": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "FeatureName", + "RoleArn" + ], + "type": "object" + }, + "AWS::RDS::DBInstance.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBInstance.MasterUserSecret": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBInstance.ProcessorFeature": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBParameterGroup": { + "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": { + "DBParameterGroupName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Family": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "Family" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBProxy": { + "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": { + "Auth": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBProxy.AuthFormat" + }, + "type": "array" + }, + "DBProxyName": { + "type": "string" + }, + "DebugLogging": { + "type": "boolean" + }, + "EngineFamily": { + "type": "string" + }, + "IdleClientTimeout": { + "type": "number" + }, + "RequireTLS": { + "type": "boolean" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBProxy.TagFormat" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Auth", + "DBProxyName", + "EngineFamily", + "RoleArn", + "VpcSubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBProxy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBProxy.AuthFormat": { + "additionalProperties": false, + "properties": { + "AuthScheme": { + "type": "string" + }, + "ClientPasswordAuthType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "IAMAuth": { + "type": "string" + }, + "SecretArn": { + "type": "string" + }, + "UserName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBProxy.TagFormat": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBProxyEndpoint": { + "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": { + "DBProxyEndpointName": { + "type": "string" + }, + "DBProxyName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBProxyEndpoint.TagFormat" + }, + "type": "array" + }, + "TargetRole": { + "type": "string" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcSubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "DBProxyEndpointName", + "DBProxyName", + "VpcSubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBProxyEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBProxyEndpoint.TagFormat": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBProxyTargetGroup": { + "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": { + "ConnectionPoolConfigurationInfo": { + "$ref": "#/definitions/AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat" + }, + "DBClusterIdentifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DBInstanceIdentifiers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DBProxyName": { + "type": "string" + }, + "TargetGroupName": { + "type": "string" + } + }, + "required": [ + "DBProxyName", + "TargetGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBProxyTargetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBProxyTargetGroup.ConnectionPoolConfigurationInfoFormat": { + "additionalProperties": false, + "properties": { + "ConnectionBorrowTimeout": { + "type": "number" + }, + "InitQuery": { + "type": "string" + }, + "MaxConnectionsPercent": { + "type": "number" + }, + "MaxIdleConnectionsPercent": { + "type": "number" + }, + "SessionPinningFilters": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::RDS::DBSecurityGroup": { + "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": { + "DBSecurityGroupIngress": { + "items": { + "$ref": "#/definitions/AWS::RDS::DBSecurityGroup.Ingress" + }, + "type": "array" + }, + "EC2VpcId": { + "type": "string" + }, + "GroupDescription": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSecurityGroupIngress", + "GroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBSecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBSecurityGroup.Ingress": { + "additionalProperties": false, + "properties": { + "CIDRIP": { + "type": "string" + }, + "EC2SecurityGroupId": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RDS::DBSecurityGroupIngress": { + "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": { + "CIDRIP": { + "type": "string" + }, + "DBSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupId": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "DBSecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBSecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::DBSubnetGroup": { + "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": { + "DBSubnetGroupDescription": { + "type": "string" + }, + "DBSubnetGroupName": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DBSubnetGroupDescription", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::DBSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::EventSubscription": { + "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": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SnsTopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::EventSubscription" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::GlobalCluster": { + "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": { + "DeletionProtection": { + "type": "boolean" + }, + "Engine": { + "type": "string" + }, + "EngineVersion": { + "type": "string" + }, + "GlobalClusterIdentifier": { + "type": "string" + }, + "SourceDBClusterIdentifier": { + "type": "string" + }, + "StorageEncrypted": { + "type": "boolean" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::GlobalCluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RDS::OptionGroup": { + "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": { + "EngineName": { + "type": "string" + }, + "MajorEngineVersion": { + "type": "string" + }, + "OptionConfigurations": { + "items": { + "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionConfiguration" + }, + "type": "array" + }, + "OptionGroupDescription": { + "type": "string" + }, + "OptionGroupName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "EngineName", + "MajorEngineVersion", + "OptionGroupDescription" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RDS::OptionGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RDS::OptionGroup.OptionConfiguration": { + "additionalProperties": false, + "properties": { + "DBSecurityGroupMemberships": { + "items": { + "type": "string" + }, + "type": "array" + }, + "OptionName": { + "type": "string" + }, + "OptionSettings": { + "items": { + "$ref": "#/definitions/AWS::RDS::OptionGroup.OptionSetting" + }, + "type": "array" + }, + "OptionVersion": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "VpcSecurityGroupMemberships": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "OptionName" + ], + "type": "object" + }, + "AWS::RDS::OptionGroup.OptionSetting": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RUM::AppMonitor": { + "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": { + "AppMonitorConfiguration": { + "$ref": "#/definitions/AWS::RUM::AppMonitor.AppMonitorConfiguration" + }, + "CwLogEnabled": { + "type": "boolean" + }, + "Domain": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Domain", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RUM::AppMonitor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RUM::AppMonitor.AppMonitorConfiguration": { + "additionalProperties": false, + "properties": { + "AllowCookies": { + "type": "boolean" + }, + "EnableXRay": { + "type": "boolean" + }, + "ExcludedPages": { + "items": { + "type": "string" + }, + "type": "array" + }, + "FavoritePages": { + "items": { + "type": "string" + }, + "type": "array" + }, + "GuestRoleArn": { + "type": "string" + }, + "IdentityPoolId": { + "type": "string" + }, + "IncludedPages": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MetricDestinations": { + "items": { + "$ref": "#/definitions/AWS::RUM::AppMonitor.MetricDestination" + }, + "type": "array" + }, + "SessionSampleRate": { + "type": "number" + }, + "Telemetries": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::RUM::AppMonitor.MetricDefinition": { + "additionalProperties": false, + "properties": { + "DimensionKeys": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "EventPattern": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "UnitLabel": { + "type": "string" + }, + "ValueKey": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::RUM::AppMonitor.MetricDestination": { + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "DestinationArn": { + "type": "string" + }, + "IamRoleArn": { + "type": "string" + }, + "MetricDefinitions": { + "items": { + "$ref": "#/definitions/AWS::RUM::AppMonitor.MetricDefinition" + }, + "type": "array" + } + }, + "required": [ + "Destination" + ], + "type": "object" + }, + "AWS::Redshift::Cluster": { + "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": { + "AllowVersionUpgrade": { + "type": "boolean" + }, + "AquaConfigurationStatus": { + "type": "string" + }, + "AutomatedSnapshotRetentionPeriod": { + "type": "number" + }, + "AvailabilityZone": { + "type": "string" + }, + "AvailabilityZoneRelocation": { + "type": "boolean" + }, + "AvailabilityZoneRelocationStatus": { + "type": "string" + }, + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterParameterGroupName": { + "type": "string" + }, + "ClusterSecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ClusterSubnetGroupName": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "ClusterVersion": { + "type": "string" + }, + "DBName": { + "type": "string" + }, + "DeferMaintenance": { + "type": "boolean" + }, + "DeferMaintenanceDuration": { + "type": "number" + }, + "DeferMaintenanceEndTime": { + "type": "string" + }, + "DeferMaintenanceStartTime": { + "type": "string" + }, + "DestinationRegion": { + "type": "string" + }, + "ElasticIp": { + "type": "string" + }, + "Encrypted": { + "type": "boolean" + }, + "Endpoint": { + "$ref": "#/definitions/AWS::Redshift::Cluster.Endpoint" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "HsmClientCertificateIdentifier": { + "type": "string" + }, + "HsmConfigurationIdentifier": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "LoggingProperties": { + "$ref": "#/definitions/AWS::Redshift::Cluster.LoggingProperties" + }, + "MaintenanceTrackName": { + "type": "string" + }, + "ManualSnapshotRetentionPeriod": { + "type": "number" + }, + "MasterUserPassword": { + "type": "string" + }, + "MasterUsername": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumberOfNodes": { + "type": "number" + }, + "OwnerAccount": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "PreferredMaintenanceWindow": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "ResourceAction": { + "type": "string" + }, + "RevisionTarget": { + "type": "string" + }, + "RotateEncryptionKey": { + "type": "boolean" + }, + "SnapshotClusterIdentifier": { + "type": "string" + }, + "SnapshotCopyGrantName": { + "type": "string" + }, + "SnapshotCopyManual": { + "type": "boolean" + }, + "SnapshotCopyRetentionPeriod": { + "type": "number" + }, + "SnapshotIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "ClusterType", + "DBName", + "MasterUserPassword", + "MasterUsername", + "NodeType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::Cluster.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::Cluster.LoggingProperties": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "S3KeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::Redshift::ClusterParameterGroup": { + "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": { + "Description": { + "type": "string" + }, + "ParameterGroupFamily": { + "type": "string" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::Redshift::ClusterParameterGroup.Parameter" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "ParameterGroupFamily" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterParameterGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterParameterGroup.Parameter": { + "additionalProperties": false, + "properties": { + "ParameterName": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "required": [ + "ParameterName", + "ParameterValue" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSecurityGroup": { + "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": { + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSecurityGroupIngress": { + "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": { + "CIDRIP": { + "type": "string" + }, + "ClusterSecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupName": { + "type": "string" + }, + "EC2SecurityGroupOwnerId": { + "type": "string" + } + }, + "required": [ + "ClusterSecurityGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSecurityGroupIngress" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ClusterSubnetGroup": { + "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": { + "Description": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Description", + "SubnetIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ClusterSubnetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess": { + "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": { + "ClusterIdentifier": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "ResourceOwner": { + "type": "string" + }, + "SubnetGroupName": { + "type": "string" + }, + "VpcEndpoint": { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess.VpcEndpoint" + }, + "VpcSecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcSecurityGroups": { + "items": { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess.VpcSecurityGroup" + }, + "type": "array" + } + }, + "required": [ + "ClusterIdentifier", + "EndpointName", + "SubnetGroupName", + "VpcSecurityGroupIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAccess" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EndpointAccess.NetworkInterface": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::EndpointAccess.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess.NetworkInterface" + }, + "type": "array" + }, + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::EndpointAccess.VpcSecurityGroup": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + }, + "VpcSecurityGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Redshift::EndpointAuthorization": { + "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": { + "Account": { + "type": "string" + }, + "ClusterIdentifier": { + "type": "string" + }, + "Force": { + "type": "boolean" + }, + "VpcIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Account", + "ClusterIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EndpointAuthorization" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::EventSubscription": { + "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": { + "Enabled": { + "type": "boolean" + }, + "EventCategories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Severity": { + "type": "string" + }, + "SnsTopicArn": { + "type": "string" + }, + "SourceIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + }, + "SubscriptionName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "SubscriptionName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::EventSubscription" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction": { + "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": { + "Enable": { + "type": "boolean" + }, + "EndTime": { + "type": "string" + }, + "IamRole": { + "type": "string" + }, + "Schedule": { + "type": "string" + }, + "ScheduledActionDescription": { + "type": "string" + }, + "ScheduledActionName": { + "type": "string" + }, + "StartTime": { + "type": "string" + }, + "TargetAction": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ScheduledActionType" + } + }, + "required": [ + "ScheduledActionName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Redshift::ScheduledAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.PauseClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResizeClusterMessage": { + "additionalProperties": false, + "properties": { + "Classic": { + "type": "boolean" + }, + "ClusterIdentifier": { + "type": "string" + }, + "ClusterType": { + "type": "string" + }, + "NodeType": { + "type": "string" + }, + "NumberOfNodes": { + "type": "number" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ResumeClusterMessage": { + "additionalProperties": false, + "properties": { + "ClusterIdentifier": { + "type": "string" + } + }, + "required": [ + "ClusterIdentifier" + ], + "type": "object" + }, + "AWS::Redshift::ScheduledAction.ScheduledActionType": { + "additionalProperties": false, + "properties": { + "PauseCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.PauseClusterMessage" + }, + "ResizeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResizeClusterMessage" + }, + "ResumeCluster": { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction.ResumeClusterMessage" + } + }, + "type": "object" + }, + "AWS::RedshiftServerless::Namespace": { + "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": { + "AdminUserPassword": { + "type": "string" + }, + "AdminUsername": { + "type": "string" + }, + "DbName": { + "type": "string" + }, + "DefaultIamRoleArn": { + "type": "string" + }, + "FinalSnapshotName": { + "type": "string" + }, + "FinalSnapshotRetentionPeriod": { + "type": "number" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "LogExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Namespace": { + "$ref": "#/definitions/AWS::RedshiftServerless::Namespace.Namespace" + }, + "NamespaceName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "NamespaceName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Namespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Namespace.Namespace": { + "additionalProperties": false, + "properties": { + "AdminUsername": { + "type": "string" + }, + "CreationDate": { + "type": "string" + }, + "DbName": { + "type": "string" + }, + "DefaultIamRoleArn": { + "type": "string" + }, + "IamRoles": { + "items": { + "type": "string" + }, + "type": "array" + }, + "KmsKeyId": { + "type": "string" + }, + "LogExports": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NamespaceArn": { + "type": "string" + }, + "NamespaceId": { + "type": "string" + }, + "NamespaceName": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup": { + "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": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Workgroup": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.Workgroup" + }, + "WorkgroupName": { + "type": "string" + } + }, + "required": [ + "WorkgroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RedshiftServerless::Workgroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.ConfigParameter": { + "additionalProperties": false, + "properties": { + "ParameterKey": { + "type": "string" + }, + "ParameterValue": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.Endpoint": { + "additionalProperties": false, + "properties": { + "Address": { + "type": "string" + }, + "Port": { + "type": "number" + }, + "VpcEndpoints": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.VpcEndpoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.NetworkInterface": { + "additionalProperties": false, + "properties": { + "AvailabilityZone": { + "type": "string" + }, + "NetworkInterfaceId": { + "type": "string" + }, + "PrivateIpAddress": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.VpcEndpoint": { + "additionalProperties": false, + "properties": { + "NetworkInterfaces": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.NetworkInterface" + }, + "type": "array" + }, + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RedshiftServerless::Workgroup.Workgroup": { + "additionalProperties": false, + "properties": { + "BaseCapacity": { + "type": "number" + }, + "ConfigParameters": { + "items": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.ConfigParameter" + }, + "type": "array" + }, + "CreationDate": { + "type": "string" + }, + "Endpoint": { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup.Endpoint" + }, + "EnhancedVpcRouting": { + "type": "boolean" + }, + "NamespaceName": { + "type": "string" + }, + "PubliclyAccessible": { + "type": "boolean" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Status": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WorkgroupArn": { + "type": "string" + }, + "WorkgroupId": { + "type": "string" + }, + "WorkgroupName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RefactorSpaces::Application": { + "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": { + "ApiGatewayProxy": { + "$ref": "#/definitions/AWS::RefactorSpaces::Application.ApiGatewayProxyInput" + }, + "EnvironmentIdentifier": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ProxyType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RefactorSpaces::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Application.ApiGatewayProxyInput": { + "additionalProperties": false, + "properties": { + "EndpointType": { + "type": "string" + }, + "StageName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RefactorSpaces::Environment": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NetworkFabricType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RefactorSpaces::Environment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Route": { + "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": { + "ApplicationIdentifier": { + "type": "string" + }, + "DefaultRoute": { + "$ref": "#/definitions/AWS::RefactorSpaces::Route.DefaultRouteInput" + }, + "EnvironmentIdentifier": { + "type": "string" + }, + "RouteType": { + "type": "string" + }, + "ServiceIdentifier": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UriPathRoute": { + "$ref": "#/definitions/AWS::RefactorSpaces::Route.UriPathRouteInput" + } + }, + "required": [ + "ApplicationIdentifier", + "EnvironmentIdentifier", + "ServiceIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RefactorSpaces::Route" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Route.DefaultRouteInput": { + "additionalProperties": false, + "properties": { + "ActivationState": { + "type": "string" + } + }, + "required": [ + "ActivationState" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Route.UriPathRouteInput": { + "additionalProperties": false, + "properties": { + "ActivationState": { + "type": "string" + }, + "IncludeChildPaths": { + "type": "boolean" + }, + "Methods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourcePath": { + "type": "string" + } + }, + "required": [ + "ActivationState" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Service": { + "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": { + "ApplicationIdentifier": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "EndpointType": { + "type": "string" + }, + "EnvironmentIdentifier": { + "type": "string" + }, + "LambdaEndpoint": { + "$ref": "#/definitions/AWS::RefactorSpaces::Service.LambdaEndpointInput" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UrlEndpoint": { + "$ref": "#/definitions/AWS::RefactorSpaces::Service.UrlEndpointInput" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "ApplicationIdentifier", + "EnvironmentIdentifier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RefactorSpaces::Service" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Service.LambdaEndpointInput": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::RefactorSpaces::Service.UrlEndpointInput": { + "additionalProperties": false, + "properties": { + "HealthUrl": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "Url" + ], + "type": "object" + }, + "AWS::Rekognition::Collection": { + "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": { + "CollectionId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "CollectionId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Rekognition::Collection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Rekognition::Project": { + "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": { + "ProjectName": { + "type": "string" + } + }, + "required": [ + "ProjectName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Rekognition::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor": { + "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": { + "BoundingBoxRegionsOfInterest": { + "items": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.BoundingBox" + }, + "type": "array" + }, + "ConnectedHomeSettings": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.ConnectedHomeSettings" + }, + "DataSharingPreference": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.DataSharingPreference" + }, + "FaceSearchSettings": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.FaceSearchSettings" + }, + "KinesisDataStream": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.KinesisDataStream" + }, + "KinesisVideoStream": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.KinesisVideoStream" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "NotificationChannel": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.NotificationChannel" + }, + "PolygonRegionsOfInterest": { + "type": "object" + }, + "RoleArn": { + "type": "string" + }, + "S3Destination": { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor.S3Destination" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KinesisVideoStream", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Rekognition::StreamProcessor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.BoundingBox": { + "additionalProperties": false, + "properties": { + "Height": { + "type": "number" + }, + "Left": { + "type": "number" + }, + "Top": { + "type": "number" + }, + "Width": { + "type": "number" + } + }, + "required": [ + "Height", + "Left", + "Top", + "Width" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.ConnectedHomeSettings": { + "additionalProperties": false, + "properties": { + "Labels": { + "items": { + "type": "string" + }, + "type": "array" + }, + "MinConfidence": { + "type": "number" + } + }, + "required": [ + "Labels" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.DataSharingPreference": { + "additionalProperties": false, + "properties": { + "OptIn": { + "type": "boolean" + } + }, + "required": [ + "OptIn" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.FaceSearchSettings": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "FaceMatchThreshold": { + "type": "number" + } + }, + "required": [ + "CollectionId" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.KinesisDataStream": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.KinesisVideoStream": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.NotificationChannel": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::Rekognition::StreamProcessor.S3Destination": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "ObjectKeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::ResilienceHub::App": { + "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": { + "AppAssessmentSchedule": { + "type": "string" + }, + "AppTemplateBody": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResiliencyPolicyArn": { + "type": "string" + }, + "ResourceMappings": { + "items": { + "$ref": "#/definitions/AWS::ResilienceHub::App.ResourceMapping" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "AppTemplateBody", + "Name", + "ResourceMappings" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ResilienceHub::App" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ResilienceHub::App.PhysicalResourceId": { + "additionalProperties": false, + "properties": { + "AwsAccountId": { + "type": "string" + }, + "AwsRegion": { + "type": "string" + }, + "Identifier": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Identifier", + "Type" + ], + "type": "object" + }, + "AWS::ResilienceHub::App.ResourceMapping": { + "additionalProperties": false, + "properties": { + "LogicalStackName": { + "type": "string" + }, + "MappingType": { + "type": "string" + }, + "PhysicalResourceId": { + "$ref": "#/definitions/AWS::ResilienceHub::App.PhysicalResourceId" + }, + "ResourceName": { + "type": "string" + }, + "TerraformSourceName": { + "type": "string" + } + }, + "required": [ + "MappingType", + "PhysicalResourceId" + ], + "type": "object" + }, + "AWS::ResilienceHub::ResiliencyPolicy": { + "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": { + "DataLocationConstraint": { + "type": "string" + }, + "Policy": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::ResilienceHub::ResiliencyPolicy.FailurePolicy" + } + }, + "type": "object" + }, + "PolicyDescription": { + "type": "string" + }, + "PolicyName": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Tier": { + "type": "string" + } + }, + "required": [ + "Policy", + "PolicyName", + "Tier" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ResilienceHub::ResiliencyPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ResilienceHub::ResiliencyPolicy.FailurePolicy": { + "additionalProperties": false, + "properties": { + "RpoInSecs": { + "type": "number" + }, + "RtoInSecs": { + "type": "number" + } + }, + "required": [ + "RpoInSecs", + "RtoInSecs" + ], + "type": "object" + }, + "AWS::ResourceExplorer2::DefaultViewAssociation": { + "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": { + "ViewArn": { + "type": "string" + } + }, + "required": [ + "ViewArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ResourceExplorer2::DefaultViewAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ResourceExplorer2::Index": { + "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": { + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ResourceExplorer2::Index" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ResourceExplorer2::View": { + "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": { + "Filters": { + "$ref": "#/definitions/AWS::ResourceExplorer2::View.Filters" + }, + "IncludedProperties": { + "items": { + "$ref": "#/definitions/AWS::ResourceExplorer2::View.IncludedProperty" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ViewName": { + "type": "string" + } + }, + "required": [ + "ViewName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ResourceExplorer2::View" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ResourceExplorer2::View.Filters": { + "additionalProperties": false, + "properties": { + "FilterString": { + "type": "string" + } + }, + "required": [ + "FilterString" + ], + "type": "object" + }, + "AWS::ResourceExplorer2::View.IncludedProperty": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::ResourceGroups::Group": { + "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": { + "Configuration": { + "items": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.ConfigurationItem" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResourceQuery": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.ResourceQuery" + }, + "Resources": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ResourceGroups::Group" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ResourceGroups::Group.ConfigurationItem": { + "additionalProperties": false, + "properties": { + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.ConfigurationParameter" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.ConfigurationParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.Query": { + "additionalProperties": false, + "properties": { + "ResourceTypeFilters": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StackIdentifier": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.ResourceQuery": { + "additionalProperties": false, + "properties": { + "Query": { + "$ref": "#/definitions/AWS::ResourceGroups::Group.Query" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::ResourceGroups::Group.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::RoboMaker::Fleet": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Fleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RoboMaker::Robot": { + "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": { + "Architecture": { + "type": "string" + }, + "Fleet": { + "type": "string" + }, + "GreengrassGroupId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Architecture", + "GreengrassGroupId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::Robot" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Environment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.RobotSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication.SourceConfig" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "RobotSoftwareSuite" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplication" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::RobotApplicationVersion": { + "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": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } + }, + "required": [ + "Application" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::RobotApplicationVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication": { + "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": { + "CurrentRevisionId": { + "type": "string" + }, + "Environment": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingEngine": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RenderingEngine" + }, + "RobotSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite" + }, + "SimulationSoftwareSuite": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication.SourceConfig" + }, + "type": "array" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "RobotSoftwareSuite", + "SimulationSoftwareSuite" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::SimulationApplication" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RenderingEngine": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "Version" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.RobotSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SimulationSoftwareSuite": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplication.SourceConfig": { + "additionalProperties": false, + "properties": { + "Architecture": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + } + }, + "required": [ + "Architecture", + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AWS::RoboMaker::SimulationApplicationVersion": { + "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": { + "Application": { + "type": "string" + }, + "CurrentRevisionId": { + "type": "string" + } + }, + "required": [ + "Application" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RoboMaker::SimulationApplicationVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::RolesAnywhere::CRL": { + "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": { + "CrlData": { + "type": "string" + }, + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TrustAnchorArn": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::CRL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::Profile": { + "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": { + "DurationSeconds": { + "type": "number" + }, + "Enabled": { + "type": "boolean" + }, + "ManagedPolicyArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RequireInstanceProperties": { + "type": "boolean" + }, + "RoleArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SessionPolicy": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor": { + "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": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Source": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.Source" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::RolesAnywhere::TrustAnchor" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.Source": { + "additionalProperties": false, + "properties": { + "SourceData": { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor.SourceData" + }, + "SourceType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::RolesAnywhere::TrustAnchor.SourceData": { + "additionalProperties": false, + "properties": { + "AcmPcaArn": { + "type": "string" + }, + "X509CertificateData": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::CidrCollection": { + "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": { + "Locations": { + "items": { + "$ref": "#/definitions/AWS::Route53::CidrCollection.Location" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::CidrCollection" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::CidrCollection.Location": { + "additionalProperties": false, + "properties": { + "CidrList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CidrList", + "LocationName" + ], + "type": "object" + }, + "AWS::Route53::DNSSEC": { + "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": { + "HostedZoneId": { + "type": "string" + } + }, + "required": [ + "HostedZoneId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::DNSSEC" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::HealthCheck": { + "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": { + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckConfig" + }, + "HealthCheckTags": { + "items": { + "$ref": "#/definitions/AWS::Route53::HealthCheck.HealthCheckTag" + }, + "type": "array" + } + }, + "required": [ + "HealthCheckConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::HealthCheck" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::HealthCheck.AlarmIdentifier": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Name", + "Region" + ], + "type": "object" + }, + "AWS::Route53::HealthCheck.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "AlarmIdentifier": { + "$ref": "#/definitions/AWS::Route53::HealthCheck.AlarmIdentifier" + }, + "ChildHealthChecks": { + "items": { + "type": "string" + }, + "type": "array" + }, + "EnableSNI": { + "type": "boolean" + }, + "FailureThreshold": { + "type": "number" + }, + "FullyQualifiedDomainName": { + "type": "string" + }, + "HealthThreshold": { + "type": "number" + }, + "IPAddress": { + "type": "string" + }, + "InsufficientDataHealthStatus": { + "type": "string" + }, + "Inverted": { + "type": "boolean" + }, + "MeasureLatency": { + "type": "boolean" + }, + "Port": { + "type": "number" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RequestInterval": { + "type": "number" + }, + "ResourcePath": { + "type": "string" + }, + "RoutingControlArn": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53::HealthCheck.HealthCheckTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Route53::HostedZone": { + "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": { + "HostedZoneConfig": { + "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneConfig" + }, + "HostedZoneTags": { + "items": { + "$ref": "#/definitions/AWS::Route53::HostedZone.HostedZoneTag" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "QueryLoggingConfig": { + "$ref": "#/definitions/AWS::Route53::HostedZone.QueryLoggingConfig" + }, + "VPCs": { + "items": { + "$ref": "#/definitions/AWS::Route53::HostedZone.VPC" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::HostedZone" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53::HostedZone.HostedZoneConfig": { + "additionalProperties": false, + "properties": { + "Comment": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::HostedZone.HostedZoneTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Route53::HostedZone.QueryLoggingConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroupArn": { + "type": "string" + } + }, + "required": [ + "CloudWatchLogsLogGroupArn" + ], + "type": "object" + }, + "AWS::Route53::HostedZone.VPC": { + "additionalProperties": false, + "properties": { + "VPCId": { + "type": "string" + }, + "VPCRegion": { + "type": "string" + } + }, + "required": [ + "VPCId", + "VPCRegion" + ], + "type": "object" + }, + "AWS::Route53::KeySigningKey": { + "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": { + "HostedZoneId": { + "type": "string" + }, + "KeyManagementServiceArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "HostedZoneId", + "KeyManagementServiceArn", + "Name", + "Status" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::KeySigningKey" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::RecordSet": { + "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": { + "AliasTarget": { + "$ref": "#/definitions/AWS::Route53::RecordSet.AliasTarget" + }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSet.CidrRoutingConfig" + }, + "Comment": { + "type": "string" + }, + "Failover": { + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSet.GeoLocation" + }, + "HealthCheckId": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "MultiValueAnswer": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SetIdentifier": { + "type": "string" + }, + "TTL": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::RecordSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53::RecordSet.AliasTarget": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + } + }, + "required": [ + "DNSName", + "HostedZoneId" + ], + "type": "object" + }, + "AWS::Route53::RecordSet.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, + "AWS::Route53::RecordSet.GeoLocation": { + "additionalProperties": false, + "properties": { + "ContinentCode": { + "type": "string" + }, + "CountryCode": { + "type": "string" + }, + "SubdivisionCode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::RecordSetGroup": { + "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": { + "Comment": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "RecordSets": { + "items": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.RecordSet" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53::RecordSetGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.AliasTarget": { + "additionalProperties": false, + "properties": { + "DNSName": { + "type": "string" + }, + "EvaluateTargetHealth": { + "type": "boolean" + }, + "HostedZoneId": { + "type": "string" + } + }, + "required": [ + "DNSName", + "HostedZoneId" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.CidrRoutingConfig": { + "additionalProperties": false, + "properties": { + "CollectionId": { + "type": "string" + }, + "LocationName": { + "type": "string" + } + }, + "required": [ + "CollectionId", + "LocationName" + ], + "type": "object" + }, + "AWS::Route53::RecordSetGroup.GeoLocation": { + "additionalProperties": false, + "properties": { + "ContinentCode": { + "type": "string" + }, + "CountryCode": { + "type": "string" + }, + "SubdivisionCode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53::RecordSetGroup.RecordSet": { + "additionalProperties": false, + "properties": { + "AliasTarget": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.AliasTarget" + }, + "CidrRoutingConfig": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.CidrRoutingConfig" + }, + "Failover": { + "type": "string" + }, + "GeoLocation": { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup.GeoLocation" + }, + "HealthCheckId": { + "type": "string" + }, + "HostedZoneId": { + "type": "string" + }, + "HostedZoneName": { + "type": "string" + }, + "MultiValueAnswer": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Region": { + "type": "string" + }, + "ResourceRecords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SetIdentifier": { + "type": "string" + }, + "TTL": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::Cluster": { + "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": { + "ClusterEndpoints": { + "items": { + "$ref": "#/definitions/AWS::Route53RecoveryControl::Cluster.ClusterEndpoint" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryControl::Cluster" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::Cluster.ClusterEndpoint": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryControl::ControlPanel": { + "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": { + "ClusterArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryControl::ControlPanel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::RoutingControl": { + "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": { + "ClusterArn": { + "type": "string" + }, + "ControlPanelArn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryControl::RoutingControl" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::SafetyRule": { + "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": { + "AssertionRule": { + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.AssertionRule" + }, + "ControlPanelArn": { + "type": "string" + }, + "GatingRule": { + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.GatingRule" + }, + "Name": { + "type": "string" + }, + "RuleConfig": { + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule.RuleConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ControlPanelArn", + "Name", + "RuleConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryControl::SafetyRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::SafetyRule.AssertionRule": { + "additionalProperties": false, + "properties": { + "AssertedControls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WaitPeriodMs": { + "type": "number" + } + }, + "required": [ + "AssertedControls", + "WaitPeriodMs" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::SafetyRule.GatingRule": { + "additionalProperties": false, + "properties": { + "GatingControls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "TargetControls": { + "items": { + "type": "string" + }, + "type": "array" + }, + "WaitPeriodMs": { + "type": "number" + } + }, + "required": [ + "GatingControls", + "TargetControls", + "WaitPeriodMs" + ], + "type": "object" + }, + "AWS::Route53RecoveryControl::SafetyRule.RuleConfig": { + "additionalProperties": false, + "properties": { + "Inverted": { + "type": "boolean" + }, + "Threshold": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Inverted", + "Threshold", + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryReadiness::Cell": { + "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": { + "CellName": { + "type": "string" + }, + "Cells": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryReadiness::Cell" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ReadinessCheck": { + "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": { + "ReadinessCheckName": { + "type": "string" + }, + "ResourceSetName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryReadiness::ReadinessCheck" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryReadiness::RecoveryGroup": { + "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": { + "Cells": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RecoveryGroupName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryReadiness::RecoveryGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet": { + "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": { + "ResourceSetName": { + "type": "string" + }, + "ResourceSetType": { + "type": "string" + }, + "Resources": { + "items": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.Resource" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ResourceSetType", + "Resources" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53RecoveryReadiness::ResourceSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.DNSTargetResource": { + "additionalProperties": false, + "properties": { + "DomainName": { + "type": "string" + }, + "HostedZoneArn": { + "type": "string" + }, + "RecordSetId": { + "type": "string" + }, + "RecordType": { + "type": "string" + }, + "TargetResource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.TargetResource" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.NLBResource": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord": { + "additionalProperties": false, + "properties": { + "DomainName": { + "type": "string" + }, + "RecordSetId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.Resource": { + "additionalProperties": false, + "properties": { + "ComponentId": { + "type": "string" + }, + "DnsTargetResource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.DNSTargetResource" + }, + "ReadinessScopes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ResourceArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Route53RecoveryReadiness::ResourceSet.TargetResource": { + "additionalProperties": false, + "properties": { + "NLBResource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.NLBResource" + }, + "R53Resource": { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet.R53ResourceRecord" + } + }, + "type": "object" + }, + "AWS::Route53Resolver::FirewallDomainList": { + "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": { + "DomainFileUrl": { + "type": "string" + }, + "Domains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::FirewallDomainList" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53Resolver::FirewallRuleGroup": { + "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": { + "FirewallRules": { + "items": { + "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroup.FirewallRule" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::FirewallRuleGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53Resolver::FirewallRuleGroup.FirewallRule": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + }, + "BlockOverrideDnsType": { + "type": "string" + }, + "BlockOverrideDomain": { + "type": "string" + }, + "BlockOverrideTtl": { + "type": "number" + }, + "BlockResponse": { + "type": "string" + }, + "FirewallDomainListId": { + "type": "string" + }, + "Priority": { + "type": "number" + } + }, + "required": [ + "Action", + "FirewallDomainListId", + "Priority" + ], + "type": "object" + }, + "AWS::Route53Resolver::FirewallRuleGroupAssociation": { + "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": { + "FirewallRuleGroupId": { + "type": "string" + }, + "MutationProtection": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "FirewallRuleGroupId", + "Priority", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::FirewallRuleGroupAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverConfig": { + "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": { + "AutodefinedReverseFlag": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "required": [ + "AutodefinedReverseFlag", + "ResourceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverDNSSECConfig": { + "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": { + "ResourceId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverDNSSECConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverEndpoint": { + "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": { + "Direction": { + "type": "string" + }, + "IpAddresses": { + "items": { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "OutpostArn": { + "type": "string" + }, + "PreferredInstanceType": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Direction", + "IpAddresses", + "SecurityGroupIds" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverEndpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverEndpoint.IpAddressRequest": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "SubnetId" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverQueryLoggingConfig": { + "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": { + "DestinationArn": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverQueryLoggingConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation": { + "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": { + "ResolverQueryLogConfigId": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverRule": { + "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": { + "DomainName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ResolverEndpointId": { + "type": "string" + }, + "RuleType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetIps": { + "items": { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule.TargetAddress" + }, + "type": "array" + } + }, + "required": [ + "DomainName", + "RuleType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverRule.TargetAddress": { + "additionalProperties": false, + "properties": { + "Ip": { + "type": "string" + }, + "Port": { + "type": "string" + } + }, + "required": [ + "Ip" + ], + "type": "object" + }, + "AWS::Route53Resolver::ResolverRuleAssociation": { + "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": { + "Name": { + "type": "string" + }, + "ResolverRuleId": { + "type": "string" + }, + "VPCId": { + "type": "string" + } + }, + "required": [ + "ResolverRuleId", + "VPCId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Route53Resolver::ResolverRuleAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::AccessPoint": { + "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": { + "Bucket": { + "type": "string" + }, + "BucketAccountId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "object" + }, + "PolicyStatus": { + "$ref": "#/definitions/AWS::S3::AccessPoint.PolicyStatus" + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/AWS::S3::AccessPoint.PublicAccessBlockConfiguration" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3::AccessPoint.VpcConfiguration" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::AccessPoint.PolicyStatus": { + "additionalProperties": false, + "properties": { + "IsPublic": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::AccessPoint.PublicAccessBlockConfiguration": { + "additionalProperties": false, + "properties": { + "BlockPublicAcls": { + "type": "boolean" + }, + "BlockPublicPolicy": { + "type": "boolean" + }, + "IgnorePublicAcls": { + "type": "boolean" + }, + "RestrictPublicBuckets": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::AccessPoint.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket": { + "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": { + "AccelerateConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.AccelerateConfiguration" + }, + "AccessControl": { + "type": "string" + }, + "AnalyticsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.AnalyticsConfiguration" + }, + "type": "array" + }, + "BucketEncryption": { + "$ref": "#/definitions/AWS::S3::Bucket.BucketEncryption" + }, + "BucketName": { + "type": "string" + }, + "CorsConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.CorsConfiguration" + }, + "IntelligentTieringConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.IntelligentTieringConfiguration" + }, + "type": "array" + }, + "InventoryConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.InventoryConfiguration" + }, + "type": "array" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.LifecycleConfiguration" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.LoggingConfiguration" + }, + "MetricsConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.MetricsConfiguration" + }, + "type": "array" + }, + "NotificationConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationConfiguration" + }, + "ObjectLockConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockConfiguration" + }, + "ObjectLockEnabled": { + "type": "boolean" + }, + "OwnershipControls": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControls" + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.PublicAccessBlockConfiguration" + }, + "ReplicationConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VersioningConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.VersioningConfiguration" + }, + "WebsiteConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.WebsiteConfiguration" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::Bucket" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::S3::Bucket.AbortIncompleteMultipartUpload": { + "additionalProperties": false, + "properties": { + "DaysAfterInitiation": { + "type": "number" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AWS::S3::Bucket.AccelerateConfiguration": { + "additionalProperties": false, + "properties": { + "AccelerationStatus": { + "type": "string" + } + }, + "required": [ + "AccelerationStatus" + ], + "type": "object" + }, + "AWS::S3::Bucket.AccessControlTranslation": { + "additionalProperties": false, + "properties": { + "Owner": { + "type": "string" + } + }, + "required": [ + "Owner" + ], + "type": "object" + }, + "AWS::S3::Bucket.AnalyticsConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "StorageClassAnalysis": { + "$ref": "#/definitions/AWS::S3::Bucket.StorageClassAnalysis" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + } + }, + "required": [ + "Id", + "StorageClassAnalysis" + ], + "type": "object" + }, + "AWS::S3::Bucket.BucketEncryption": { + "additionalProperties": false, + "properties": { + "ServerSideEncryptionConfiguration": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionRule" + }, + "type": "array" + } + }, + "required": [ + "ServerSideEncryptionConfiguration" + ], + "type": "object" + }, + "AWS::S3::Bucket.CorsConfiguration": { + "additionalProperties": false, + "properties": { + "CorsRules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.CorsRule" + }, + "type": "array" + } + }, + "required": [ + "CorsRules" + ], + "type": "object" + }, + "AWS::S3::Bucket.CorsRule": { + "additionalProperties": false, + "properties": { + "AllowedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedMethods": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AllowedOrigins": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ExposedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Id": { + "type": "string" + }, + "MaxAge": { + "type": "number" + } + }, + "required": [ + "AllowedMethods", + "AllowedOrigins" + ], + "type": "object" + }, + "AWS::S3::Bucket.DataExport": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::S3::Bucket.Destination" + }, + "OutputSchemaVersion": { + "type": "string" + } + }, + "required": [ + "Destination", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::Bucket.DefaultRetention": { + "additionalProperties": false, + "properties": { + "Days": { + "type": "number" + }, + "Mode": { + "type": "string" + }, + "Years": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.DeleteMarkerReplication": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.Destination": { + "additionalProperties": false, + "properties": { + "BucketAccountId": { + "type": "string" + }, + "BucketArn": { + "type": "string" + }, + "Format": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "BucketArn", + "Format" + ], + "type": "object" + }, + "AWS::S3::Bucket.EncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "ReplicaKmsKeyID": { + "type": "string" + } + }, + "required": [ + "ReplicaKmsKeyID" + ], + "type": "object" + }, + "AWS::S3::Bucket.EventBridgeConfiguration": { + "additionalProperties": false, + "properties": { + "EventBridgeEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.FilterRule": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::S3::Bucket.IntelligentTieringConfiguration": { + "additionalProperties": false, + "properties": { + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + }, + "Tierings": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Tiering" + }, + "type": "array" + } + }, + "required": [ + "Id", + "Status", + "Tierings" + ], + "type": "object" + }, + "AWS::S3::Bucket.InventoryConfiguration": { + "additionalProperties": false, + "properties": { + "Destination": { + "$ref": "#/definitions/AWS::S3::Bucket.Destination" + }, + "Enabled": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "IncludedObjectVersions": { + "type": "string" + }, + "OptionalFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Prefix": { + "type": "string" + }, + "ScheduleFrequency": { + "type": "string" + } + }, + "required": [ + "Destination", + "Enabled", + "Id", + "IncludedObjectVersions", + "ScheduleFrequency" + ], + "type": "object" + }, + "AWS::S3::Bucket.LambdaConfiguration": { + "additionalProperties": false, + "properties": { + "Event": { + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter" + }, + "Function": { + "type": "string" + } + }, + "required": [ + "Event", + "Function" + ], + "type": "object" + }, + "AWS::S3::Bucket.LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Rule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "DestinationBucketName": { + "type": "string" + }, + "LogFilePrefix": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.Metrics": { + "additionalProperties": false, + "properties": { + "EventThreshold": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.MetricsConfiguration": { + "additionalProperties": false, + "properties": { + "AccessPointArn": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + } + }, + "required": [ + "Id" + ], + "type": "object" + }, + "AWS::S3::Bucket.NoncurrentVersionExpiration": { + "additionalProperties": false, + "properties": { + "NewerNoncurrentVersions": { + "type": "number" + }, + "NoncurrentDays": { + "type": "number" + } + }, + "required": [ + "NoncurrentDays" + ], + "type": "object" + }, + "AWS::S3::Bucket.NoncurrentVersionTransition": { + "additionalProperties": false, + "properties": { + "NewerNoncurrentVersions": { + "type": "number" + }, + "StorageClass": { + "type": "string" + }, + "TransitionInDays": { + "type": "number" + } + }, + "required": [ + "StorageClass", + "TransitionInDays" + ], + "type": "object" + }, + "AWS::S3::Bucket.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "EventBridgeConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.EventBridgeConfiguration" + }, + "LambdaConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.LambdaConfiguration" + }, + "type": "array" + }, + "QueueConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.QueueConfiguration" + }, + "type": "array" + }, + "TopicConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TopicConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.NotificationFilter": { + "additionalProperties": false, + "properties": { + "S3Key": { + "$ref": "#/definitions/AWS::S3::Bucket.S3KeyFilter" + } + }, + "required": [ + "S3Key" + ], + "type": "object" + }, + "AWS::S3::Bucket.ObjectLockConfiguration": { + "additionalProperties": false, + "properties": { + "ObjectLockEnabled": { + "type": "string" + }, + "Rule": { + "$ref": "#/definitions/AWS::S3::Bucket.ObjectLockRule" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ObjectLockRule": { + "additionalProperties": false, + "properties": { + "DefaultRetention": { + "$ref": "#/definitions/AWS::S3::Bucket.DefaultRetention" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControls": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.OwnershipControlsRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.OwnershipControlsRule": { + "additionalProperties": false, + "properties": { + "ObjectOwnership": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.PublicAccessBlockConfiguration": { + "additionalProperties": false, + "properties": { + "BlockPublicAcls": { + "type": "boolean" + }, + "BlockPublicPolicy": { + "type": "boolean" + }, + "IgnorePublicAcls": { + "type": "boolean" + }, + "RestrictPublicBuckets": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.QueueConfiguration": { + "additionalProperties": false, + "properties": { + "Event": { + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter" + }, + "Queue": { + "type": "string" + } + }, + "required": [ + "Event", + "Queue" + ], + "type": "object" + }, + "AWS::S3::Bucket.RedirectAllRequestsTo": { + "additionalProperties": false, + "properties": { + "HostName": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "required": [ + "HostName" + ], + "type": "object" + }, + "AWS::S3::Bucket.RedirectRule": { + "additionalProperties": false, + "properties": { + "HostName": { + "type": "string" + }, + "HttpRedirectCode": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "ReplaceKeyPrefixWith": { + "type": "string" + }, + "ReplaceKeyWith": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ReplicaModifications": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationConfiguration": { + "additionalProperties": false, + "properties": { + "Role": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRule" + }, + "type": "array" + } + }, + "required": [ + "Role", + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationDestination": { + "additionalProperties": false, + "properties": { + "AccessControlTranslation": { + "$ref": "#/definitions/AWS::S3::Bucket.AccessControlTranslation" + }, + "Account": { + "type": "string" + }, + "Bucket": { + "type": "string" + }, + "EncryptionConfiguration": { + "$ref": "#/definitions/AWS::S3::Bucket.EncryptionConfiguration" + }, + "Metrics": { + "$ref": "#/definitions/AWS::S3::Bucket.Metrics" + }, + "ReplicationTime": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTime" + }, + "StorageClass": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationRule": { + "additionalProperties": false, + "properties": { + "DeleteMarkerReplication": { + "$ref": "#/definitions/AWS::S3::Bucket.DeleteMarkerReplication" + }, + "Destination": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationDestination" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleFilter" + }, + "Id": { + "type": "string" + }, + "Prefix": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "SourceSelectionCriteria": { + "$ref": "#/definitions/AWS::S3::Bucket.SourceSelectionCriteria" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Destination", + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationRuleAndOperator": { + "additionalProperties": false, + "properties": { + "Prefix": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ReplicationRuleFilter": { + "additionalProperties": false, + "properties": { + "And": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationRuleAndOperator" + }, + "Prefix": { + "type": "string" + }, + "TagFilter": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.ReplicationTime": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + }, + "Time": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicationTimeValue" + } + }, + "required": [ + "Status", + "Time" + ], + "type": "object" + }, + "AWS::S3::Bucket.ReplicationTimeValue": { + "additionalProperties": false, + "properties": { + "Minutes": { + "type": "number" + } + }, + "required": [ + "Minutes" + ], + "type": "object" + }, + "AWS::S3::Bucket.RoutingRule": { + "additionalProperties": false, + "properties": { + "RedirectRule": { + "$ref": "#/definitions/AWS::S3::Bucket.RedirectRule" + }, + "RoutingRuleCondition": { + "$ref": "#/definitions/AWS::S3::Bucket.RoutingRuleCondition" + } + }, + "required": [ + "RedirectRule" + ], + "type": "object" + }, + "AWS::S3::Bucket.RoutingRuleCondition": { + "additionalProperties": false, + "properties": { + "HttpErrorCodeReturnedEquals": { + "type": "string" + }, + "KeyPrefixEquals": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3::Bucket.AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "type": "string" + }, + "ExpirationInDays": { + "type": "number" + }, + "ExpiredObjectDeleteMarker": { + "type": "boolean" + }, + "Id": { + "type": "string" + }, + "NoncurrentVersionExpiration": { + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionExpiration" + }, + "NoncurrentVersionExpirationInDays": { + "type": "number" + }, + "NoncurrentVersionTransition": { + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition" + }, + "NoncurrentVersionTransitions": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.NoncurrentVersionTransition" + }, + "type": "array" + }, + "ObjectSizeGreaterThan": { + "type": "number" + }, + "ObjectSizeLessThan": { + "type": "number" + }, + "Prefix": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "TagFilters": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.TagFilter" + }, + "type": "array" + }, + "Transition": { + "$ref": "#/definitions/AWS::S3::Bucket.Transition" + }, + "Transitions": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.Transition" + }, + "type": "array" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.S3KeyFilter": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.FilterRule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3::Bucket.ServerSideEncryptionByDefault": { + "additionalProperties": false, + "properties": { + "KMSMasterKeyID": { + "type": "string" + }, + "SSEAlgorithm": { + "type": "string" + } + }, + "required": [ + "SSEAlgorithm" + ], + "type": "object" + }, + "AWS::S3::Bucket.ServerSideEncryptionRule": { + "additionalProperties": false, + "properties": { + "BucketKeyEnabled": { + "type": "boolean" + }, + "ServerSideEncryptionByDefault": { + "$ref": "#/definitions/AWS::S3::Bucket.ServerSideEncryptionByDefault" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.SourceSelectionCriteria": { + "additionalProperties": false, + "properties": { + "ReplicaModifications": { + "$ref": "#/definitions/AWS::S3::Bucket.ReplicaModifications" + }, + "SseKmsEncryptedObjects": { + "$ref": "#/definitions/AWS::S3::Bucket.SseKmsEncryptedObjects" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.SseKmsEncryptedObjects": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.StorageClassAnalysis": { + "additionalProperties": false, + "properties": { + "DataExport": { + "$ref": "#/definitions/AWS::S3::Bucket.DataExport" + } + }, + "type": "object" + }, + "AWS::S3::Bucket.TagFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::S3::Bucket.Tiering": { + "additionalProperties": false, + "properties": { + "AccessTier": { + "type": "string" + }, + "Days": { + "type": "number" + } + }, + "required": [ + "AccessTier", + "Days" + ], + "type": "object" + }, + "AWS::S3::Bucket.TopicConfiguration": { + "additionalProperties": false, + "properties": { + "Event": { + "type": "string" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3::Bucket.NotificationFilter" + }, + "Topic": { + "type": "string" + } + }, + "required": [ + "Event", + "Topic" + ], + "type": "object" + }, + "AWS::S3::Bucket.Transition": { + "additionalProperties": false, + "properties": { + "StorageClass": { + "type": "string" + }, + "TransitionDate": { + "type": "string" + }, + "TransitionInDays": { + "type": "number" + } + }, + "required": [ + "StorageClass" + ], + "type": "object" + }, + "AWS::S3::Bucket.VersioningConfiguration": { + "additionalProperties": false, + "properties": { + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3::Bucket.WebsiteConfiguration": { + "additionalProperties": false, + "properties": { + "ErrorDocument": { + "type": "string" + }, + "IndexDocument": { + "type": "string" + }, + "RedirectAllRequestsTo": { + "$ref": "#/definitions/AWS::S3::Bucket.RedirectAllRequestsTo" + }, + "RoutingRules": { + "items": { + "$ref": "#/definitions/AWS::S3::Bucket.RoutingRule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::BucketPolicy": { + "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": { + "Bucket": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "Bucket", + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::BucketPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::MultiRegionAccessPoint": { + "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": { + "Name": { + "type": "string" + }, + "PublicAccessBlockConfiguration": { + "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.PublicAccessBlockConfiguration" + }, + "Regions": { + "items": { + "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint.Region" + }, + "type": "array" + } + }, + "required": [ + "Regions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::MultiRegionAccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::MultiRegionAccessPoint.PublicAccessBlockConfiguration": { + "additionalProperties": false, + "properties": { + "BlockPublicAcls": { + "type": "boolean" + }, + "BlockPublicPolicy": { + "type": "boolean" + }, + "IgnorePublicAcls": { + "type": "boolean" + }, + "RestrictPublicBuckets": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::MultiRegionAccessPoint.Region": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + } + }, + "required": [ + "Bucket" + ], + "type": "object" + }, + "AWS::S3::MultiRegionAccessPointPolicy": { + "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": { + "MrapName": { + "type": "string" + }, + "Policy": { + "type": "object" + } + }, + "required": [ + "MrapName", + "Policy" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::MultiRegionAccessPointPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::MultiRegionAccessPointPolicy.PolicyStatus": { + "additionalProperties": false, + "properties": { + "IsPublic": { + "type": "string" + } + }, + "required": [ + "IsPublic" + ], + "type": "object" + }, + "AWS::S3::StorageLens": { + "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": { + "StorageLensConfiguration": { + "$ref": "#/definitions/AWS::S3::StorageLens.StorageLensConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "StorageLensConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3::StorageLens" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3::StorageLens.AccountLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "AdvancedCostOptimizationMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedCostOptimizationMetrics" + }, + "AdvancedDataProtectionMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedDataProtectionMetrics" + }, + "BucketLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketLevel" + }, + "DetailedStatusCodesMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.DetailedStatusCodesMetrics" + } + }, + "required": [ + "BucketLevel" + ], + "type": "object" + }, + "AWS::S3::StorageLens.ActivityMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AdvancedCostOptimizationMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AdvancedDataProtectionMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.AwsOrg": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::S3::StorageLens.BucketLevel": { + "additionalProperties": false, + "properties": { + "ActivityMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.ActivityMetrics" + }, + "AdvancedCostOptimizationMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedCostOptimizationMetrics" + }, + "AdvancedDataProtectionMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.AdvancedDataProtectionMetrics" + }, + "DetailedStatusCodesMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.DetailedStatusCodesMetrics" + }, + "PrefixLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevel" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.BucketsAndRegions": { + "additionalProperties": false, + "properties": { + "Buckets": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Regions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.CloudWatchMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "required": [ + "IsEnabled" + ], + "type": "object" + }, + "AWS::S3::StorageLens.DataExport": { + "additionalProperties": false, + "properties": { + "CloudWatchMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.CloudWatchMetrics" + }, + "S3BucketDestination": { + "$ref": "#/definitions/AWS::S3::StorageLens.S3BucketDestination" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.DetailedStatusCodesMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.Encryption": { + "additionalProperties": false, + "properties": { + "SSEKMS": { + "$ref": "#/definitions/AWS::S3::StorageLens.SSEKMS" + }, + "SSES3": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevel": { + "additionalProperties": false, + "properties": { + "StorageMetrics": { + "$ref": "#/definitions/AWS::S3::StorageLens.PrefixLevelStorageMetrics" + } + }, + "required": [ + "StorageMetrics" + ], + "type": "object" + }, + "AWS::S3::StorageLens.PrefixLevelStorageMetrics": { + "additionalProperties": false, + "properties": { + "IsEnabled": { + "type": "boolean" + }, + "SelectionCriteria": { + "$ref": "#/definitions/AWS::S3::StorageLens.SelectionCriteria" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.S3BucketDestination": { + "additionalProperties": false, + "properties": { + "AccountId": { + "type": "string" + }, + "Arn": { + "type": "string" + }, + "Encryption": { + "$ref": "#/definitions/AWS::S3::StorageLens.Encryption" + }, + "Format": { + "type": "string" + }, + "OutputSchemaVersion": { + "type": "string" + }, + "Prefix": { + "type": "string" + } + }, + "required": [ + "AccountId", + "Arn", + "Format", + "OutputSchemaVersion" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SSEKMS": { + "additionalProperties": false, + "properties": { + "KeyId": { + "type": "string" + } + }, + "required": [ + "KeyId" + ], + "type": "object" + }, + "AWS::S3::StorageLens.SelectionCriteria": { + "additionalProperties": false, + "properties": { + "Delimiter": { + "type": "string" + }, + "MaxDepth": { + "type": "number" + }, + "MinStorageBytesPercentage": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::S3::StorageLens.StorageLensConfiguration": { + "additionalProperties": false, + "properties": { + "AccountLevel": { + "$ref": "#/definitions/AWS::S3::StorageLens.AccountLevel" + }, + "AwsOrg": { + "$ref": "#/definitions/AWS::S3::StorageLens.AwsOrg" + }, + "DataExport": { + "$ref": "#/definitions/AWS::S3::StorageLens.DataExport" + }, + "Exclude": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "Id": { + "type": "string" + }, + "Include": { + "$ref": "#/definitions/AWS::S3::StorageLens.BucketsAndRegions" + }, + "IsEnabled": { + "type": "boolean" + }, + "StorageLensArn": { + "type": "string" + } + }, + "required": [ + "AccountLevel", + "Id", + "IsEnabled" + ], + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPoint": { + "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": { + "Name": { + "type": "string" + }, + "ObjectLambdaConfiguration": { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ObjectLambdaConfiguration" + } + }, + "required": [ + "ObjectLambdaConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3ObjectLambda::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPoint.AwsLambda": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + }, + "FunctionPayload": { + "type": "string" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPoint.ContentTransformation": { + "additionalProperties": false, + "properties": { + "AwsLambda": { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.AwsLambda" + } + }, + "required": [ + "AwsLambda" + ], + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPoint.ObjectLambdaConfiguration": { + "additionalProperties": false, + "properties": { + "AllowedFeatures": { + "items": { + "type": "string" + }, + "type": "array" + }, + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "SupportingAccessPoint": { + "type": "string" + }, + "TransformationConfigurations": { + "items": { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.TransformationConfiguration" + }, + "type": "array" + } + }, + "required": [ + "SupportingAccessPoint", + "TransformationConfigurations" + ], + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPoint.PolicyStatus": { + "additionalProperties": false, + "properties": { + "IsPublic": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPoint.PublicAccessBlockConfiguration": { + "additionalProperties": false, + "properties": { + "BlockPublicAcls": { + "type": "boolean" + }, + "BlockPublicPolicy": { + "type": "boolean" + }, + "IgnorePublicAcls": { + "type": "boolean" + }, + "RestrictPublicBuckets": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPoint.TransformationConfiguration": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContentTransformation": { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint.ContentTransformation" + } + }, + "required": [ + "Actions", + "ContentTransformation" + ], + "type": "object" + }, + "AWS::S3ObjectLambda::AccessPointPolicy": { + "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": { + "ObjectLambdaAccessPoint": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "ObjectLambdaAccessPoint", + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3ObjectLambda::AccessPointPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint": { + "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": { + "Bucket": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policy": { + "type": "object" + }, + "VpcConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint.VpcConfiguration" + } + }, + "required": [ + "Bucket", + "Name", + "VpcConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::AccessPoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::AccessPoint.VpcConfiguration": { + "additionalProperties": false, + "properties": { + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::S3Outposts::Bucket": { + "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": { + "BucketName": { + "type": "string" + }, + "LifecycleConfiguration": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.LifecycleConfiguration" + }, + "OutpostId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "BucketName", + "OutpostId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::Bucket" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload": { + "additionalProperties": false, + "properties": { + "DaysAfterInitiation": { + "type": "number" + } + }, + "required": [ + "DaysAfterInitiation" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.Filter": { + "additionalProperties": false, + "properties": { + "AndOperator": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.FilterAndOperator" + }, + "Prefix": { + "type": "string" + }, + "Tag": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.FilterTag" + } + }, + "type": "object" + }, + "AWS::S3Outposts::Bucket.FilterAndOperator": { + "additionalProperties": false, + "properties": { + "Prefix": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.FilterTag" + }, + "type": "array" + } + }, + "required": [ + "Tags" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.FilterTag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.LifecycleConfiguration": { + "additionalProperties": false, + "properties": { + "Rules": { + "items": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Rule" + }, + "type": "array" + } + }, + "required": [ + "Rules" + ], + "type": "object" + }, + "AWS::S3Outposts::Bucket.Rule": { + "additionalProperties": false, + "properties": { + "AbortIncompleteMultipartUpload": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.AbortIncompleteMultipartUpload" + }, + "ExpirationDate": { + "type": "string" + }, + "ExpirationInDays": { + "type": "number" + }, + "Filter": { + "$ref": "#/definitions/AWS::S3Outposts::Bucket.Filter" + }, + "Id": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Status" + ], + "type": "object" + }, + "AWS::S3Outposts::BucketPolicy": { + "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": { + "Bucket": { + "type": "string" + }, + "PolicyDocument": { + "type": "object" + } + }, + "required": [ + "Bucket", + "PolicyDocument" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::BucketPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Endpoint": { + "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": { + "AccessType": { + "type": "string" + }, + "CustomerOwnedIpv4Pool": { + "type": "string" + }, + "OutpostId": { + "type": "string" + }, + "SecurityGroupId": { + "type": "string" + }, + "SubnetId": { + "type": "string" + } + }, + "required": [ + "OutpostId", + "SecurityGroupId", + "SubnetId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::S3Outposts::Endpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::S3Outposts::Endpoint.NetworkInterface": { + "additionalProperties": false, + "properties": { + "NetworkInterfaceId": { + "type": "string" + } + }, + "required": [ + "NetworkInterfaceId" + ], + "type": "object" + }, + "AWS::SDB::Domain": { + "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": { + "Description": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SDB::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSet": { + "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": { + "DeliveryOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.DeliveryOptions" + }, + "Name": { + "type": "string" + }, + "ReputationOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.ReputationOptions" + }, + "SendingOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.SendingOptions" + }, + "SuppressionOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.SuppressionOptions" + }, + "TrackingOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.TrackingOptions" + }, + "VdmOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.VdmOptions" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::ConfigurationSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSet.DashboardOptions": { + "additionalProperties": false, + "properties": { + "EngagementMetrics": { + "type": "string" + } + }, + "required": [ + "EngagementMetrics" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSet.DeliveryOptions": { + "additionalProperties": false, + "properties": { + "SendingPoolName": { + "type": "string" + }, + "TlsPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSet.GuardianOptions": { + "additionalProperties": false, + "properties": { + "OptimizedSharedDelivery": { + "type": "string" + } + }, + "required": [ + "OptimizedSharedDelivery" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSet.ReputationOptions": { + "additionalProperties": false, + "properties": { + "ReputationMetricsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSet.SendingOptions": { + "additionalProperties": false, + "properties": { + "SendingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSet.SuppressionOptions": { + "additionalProperties": false, + "properties": { + "SuppressedReasons": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSet.TrackingOptions": { + "additionalProperties": false, + "properties": { + "CustomRedirectDomain": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSet.VdmOptions": { + "additionalProperties": false, + "properties": { + "DashboardOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.DashboardOptions" + }, + "GuardianOptions": { + "$ref": "#/definitions/AWS::SES::ConfigurationSet.GuardianOptions" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination": { + "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": { + "ConfigurationSetName": { + "type": "string" + }, + "EventDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.EventDestination" + } + }, + "required": [ + "ConfigurationSetName", + "EventDestination" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::ConfigurationSetEventDestination" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination": { + "additionalProperties": false, + "properties": { + "DimensionConfigurations": { + "items": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.DimensionConfiguration": { + "additionalProperties": false, + "properties": { + "DefaultDimensionValue": { + "type": "string" + }, + "DimensionName": { + "type": "string" + }, + "DimensionValueSource": { + "type": "string" + } + }, + "required": [ + "DefaultDimensionValue", + "DimensionName", + "DimensionValueSource" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.EventDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.CloudWatchDestination" + }, + "Enabled": { + "type": "boolean" + }, + "KinesisFirehoseDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination" + }, + "MatchingEventTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "SnsDestination": { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination.SnsDestination" + } + }, + "required": [ + "MatchingEventTypes" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.KinesisFirehoseDestination": { + "additionalProperties": false, + "properties": { + "DeliveryStreamARN": { + "type": "string" + }, + "IAMRoleARN": { + "type": "string" + } + }, + "required": [ + "DeliveryStreamARN", + "IAMRoleARN" + ], + "type": "object" + }, + "AWS::SES::ConfigurationSetEventDestination.SnsDestination": { + "additionalProperties": false, + "properties": { + "TopicARN": { + "type": "string" + } + }, + "required": [ + "TopicARN" + ], + "type": "object" + }, + "AWS::SES::ContactList": { + "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": { + "ContactListName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Topics": { + "items": { + "$ref": "#/definitions/AWS::SES::ContactList.Topic" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::ContactList" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SES::ContactList.Topic": { + "additionalProperties": false, + "properties": { + "DefaultSubscriptionStatus": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "TopicName": { + "type": "string" + } + }, + "required": [ + "DefaultSubscriptionStatus", + "DisplayName", + "TopicName" + ], + "type": "object" + }, + "AWS::SES::DedicatedIpPool": { + "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": { + "PoolName": { + "type": "string" + }, + "ScalingMode": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::DedicatedIpPool" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SES::EmailIdentity": { + "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": { + "ConfigurationSetAttributes": { + "$ref": "#/definitions/AWS::SES::EmailIdentity.ConfigurationSetAttributes" + }, + "DkimAttributes": { + "$ref": "#/definitions/AWS::SES::EmailIdentity.DkimAttributes" + }, + "DkimSigningAttributes": { + "$ref": "#/definitions/AWS::SES::EmailIdentity.DkimSigningAttributes" + }, + "EmailIdentity": { + "type": "string" + }, + "FeedbackAttributes": { + "$ref": "#/definitions/AWS::SES::EmailIdentity.FeedbackAttributes" + }, + "MailFromAttributes": { + "$ref": "#/definitions/AWS::SES::EmailIdentity.MailFromAttributes" + } + }, + "required": [ + "EmailIdentity" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::EmailIdentity" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SES::EmailIdentity.ConfigurationSetAttributes": { + "additionalProperties": false, + "properties": { + "ConfigurationSetName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::EmailIdentity.DkimAttributes": { + "additionalProperties": false, + "properties": { + "SigningEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SES::EmailIdentity.DkimSigningAttributes": { + "additionalProperties": false, + "properties": { + "DomainSigningPrivateKey": { + "type": "string" + }, + "DomainSigningSelector": { + "type": "string" + }, + "NextSigningKeyLength": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::EmailIdentity.FeedbackAttributes": { + "additionalProperties": false, + "properties": { + "EmailForwardingEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SES::EmailIdentity.MailFromAttributes": { + "additionalProperties": false, + "properties": { + "BehaviorOnMxFailure": { + "type": "string" + }, + "MailFromDomain": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::ReceiptFilter": { + "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": { + "Filter": { + "$ref": "#/definitions/AWS::SES::ReceiptFilter.Filter" + } + }, + "required": [ + "Filter" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::ReceiptFilter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SES::ReceiptFilter.Filter": { + "additionalProperties": false, + "properties": { + "IpFilter": { + "$ref": "#/definitions/AWS::SES::ReceiptFilter.IpFilter" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "IpFilter" + ], + "type": "object" + }, + "AWS::SES::ReceiptFilter.IpFilter": { + "additionalProperties": false, + "properties": { + "Cidr": { + "type": "string" + }, + "Policy": { + "type": "string" + } + }, + "required": [ + "Cidr", + "Policy" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule": { + "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": { + "After": { + "type": "string" + }, + "Rule": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.Rule" + }, + "RuleSetName": { + "type": "string" + } + }, + "required": [ + "Rule", + "RuleSetName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::ReceiptRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.Action": { + "additionalProperties": false, + "properties": { + "AddHeaderAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.AddHeaderAction" + }, + "BounceAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.BounceAction" + }, + "LambdaAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.LambdaAction" + }, + "S3Action": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.S3Action" + }, + "SNSAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.SNSAction" + }, + "StopAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.StopAction" + }, + "WorkmailAction": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.WorkmailAction" + } + }, + "type": "object" + }, + "AWS::SES::ReceiptRule.AddHeaderAction": { + "additionalProperties": false, + "properties": { + "HeaderName": { + "type": "string" + }, + "HeaderValue": { + "type": "string" + } + }, + "required": [ + "HeaderName", + "HeaderValue" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.BounceAction": { + "additionalProperties": false, + "properties": { + "Message": { + "type": "string" + }, + "Sender": { + "type": "string" + }, + "SmtpReplyCode": { + "type": "string" + }, + "StatusCode": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "Message", + "Sender", + "SmtpReplyCode" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.LambdaAction": { + "additionalProperties": false, + "properties": { + "FunctionArn": { + "type": "string" + }, + "InvocationType": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "FunctionArn" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.Rule": { + "additionalProperties": false, + "properties": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::SES::ReceiptRule.Action" + }, + "type": "array" + }, + "Enabled": { + "type": "boolean" + }, + "Name": { + "type": "string" + }, + "Recipients": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ScanEnabled": { + "type": "boolean" + }, + "TlsPolicy": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::ReceiptRule.S3Action": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + }, + "ObjectKeyPrefix": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.SNSAction": { + "additionalProperties": false, + "properties": { + "Encoding": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::ReceiptRule.StopAction": { + "additionalProperties": false, + "properties": { + "Scope": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "Scope" + ], + "type": "object" + }, + "AWS::SES::ReceiptRule.WorkmailAction": { + "additionalProperties": false, + "properties": { + "OrganizationArn": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "OrganizationArn" + ], + "type": "object" + }, + "AWS::SES::ReceiptRuleSet": { + "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": { + "RuleSetName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::ReceiptRuleSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SES::Template": { + "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": { + "Template": { + "$ref": "#/definitions/AWS::SES::Template.Template" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::Template" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SES::Template.Template": { + "additionalProperties": false, + "properties": { + "HtmlPart": { + "type": "string" + }, + "SubjectPart": { + "type": "string" + }, + "TemplateName": { + "type": "string" + }, + "TextPart": { + "type": "string" + } + }, + "required": [ + "SubjectPart" + ], + "type": "object" + }, + "AWS::SES::VdmAttributes": { + "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": { + "DashboardAttributes": { + "$ref": "#/definitions/AWS::SES::VdmAttributes.DashboardAttributes" + }, + "GuardianAttributes": { + "$ref": "#/definitions/AWS::SES::VdmAttributes.GuardianAttributes" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SES::VdmAttributes" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SES::VdmAttributes.DashboardAttributes": { + "additionalProperties": false, + "properties": { + "EngagementMetrics": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SES::VdmAttributes.GuardianAttributes": { + "additionalProperties": false, + "properties": { + "OptimizedSharedDelivery": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SNS::Subscription": { + "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": { + "DeliveryPolicy": { + "type": "object" + }, + "Endpoint": { + "type": "string" + }, + "FilterPolicy": { + "type": "object" + }, + "FilterPolicyScope": { + "type": "string" + }, + "Protocol": { + "type": "string" + }, + "RawMessageDelivery": { + "type": "boolean" + }, + "RedrivePolicy": { + "type": "object" + }, + "Region": { + "type": "string" + }, + "SubscriptionRoleArn": { + "type": "string" + }, + "TopicArn": { + "type": "string" + } + }, + "required": [ + "Protocol", + "TopicArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::Subscription" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SNS::Topic": { + "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": { + "ContentBasedDeduplication": { + "type": "boolean" + }, + "DataProtectionPolicy": { + "type": "object" + }, + "DisplayName": { + "type": "string" + }, + "FifoTopic": { + "type": "boolean" + }, + "KmsMasterKeyId": { + "type": "string" + }, + "SignatureVersion": { + "type": "string" + }, + "Subscription": { + "items": { + "$ref": "#/definitions/AWS::SNS::Topic.Subscription" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TopicName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::Topic" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SNS::Topic.Subscription": { + "additionalProperties": false, + "properties": { + "Endpoint": { + "type": "string" + }, + "Protocol": { + "type": "string" + } + }, + "required": [ + "Endpoint", + "Protocol" + ], + "type": "object" + }, + "AWS::SNS::TopicPolicy": { + "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": { + "PolicyDocument": { + "type": "object" + }, + "Topics": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "PolicyDocument", + "Topics" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SNS::TopicPolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SQS::Queue": { + "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": { + "ContentBasedDeduplication": { + "type": "boolean" + }, + "DeduplicationScope": { + "type": "string" + }, + "DelaySeconds": { + "type": "number" + }, + "FifoQueue": { + "type": "boolean" + }, + "FifoThroughputLimit": { + "type": "string" + }, + "KmsDataKeyReusePeriodSeconds": { + "type": "number" + }, + "KmsMasterKeyId": { + "type": "string" + }, + "MaximumMessageSize": { + "type": "number" + }, + "MessageRetentionPeriod": { + "type": "number" + }, + "QueueName": { + "type": "string" + }, + "ReceiveMessageWaitTimeSeconds": { + "type": "number" + }, + "RedriveAllowPolicy": { + "type": "object" + }, + "RedrivePolicy": { + "type": "object" + }, + "SqsManagedSseEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VisibilityTimeout": { + "type": "number" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SQS::Queue" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SQS::QueuePolicy": { + "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": { + "PolicyDocument": { + "type": "object" + }, + "Queues": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "PolicyDocument", + "Queues" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SQS::QueuePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::Association": { + "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": { + "ApplyOnlyAtCronInterval": { + "type": "boolean" + }, + "AssociationName": { + "type": "string" + }, + "AutomationTargetParameterName": { + "type": "string" + }, + "CalendarNames": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ComplianceSeverity": { + "type": "string" + }, + "DocumentVersion": { + "type": "string" + }, + "InstanceId": { + "type": "string" + }, + "MaxConcurrency": { + "type": "string" + }, + "MaxErrors": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OutputLocation": { + "$ref": "#/definitions/AWS::SSM::Association.InstanceAssociationOutputLocation" + }, + "Parameters": { + "type": "object" + }, + "ScheduleExpression": { + "type": "string" + }, + "ScheduleOffset": { + "type": "number" + }, + "SyncCompliance": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSM::Association.Target" + }, + "type": "array" + }, + "WaitForSuccessTimeoutSeconds": { + "type": "number" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::Association" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::Association.InstanceAssociationOutputLocation": { + "additionalProperties": false, + "properties": { + "S3Location": { + "$ref": "#/definitions/AWS::SSM::Association.S3OutputLocation" + } + }, + "type": "object" + }, + "AWS::SSM::Association.S3OutputLocation": { + "additionalProperties": false, + "properties": { + "OutputS3BucketName": { + "type": "string" + }, + "OutputS3KeyPrefix": { + "type": "string" + }, + "OutputS3Region": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSM::Association.Target": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::SSM::Document": { + "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": { + "Attachments": { + "items": { + "$ref": "#/definitions/AWS::SSM::Document.AttachmentsSource" + }, + "type": "array" + }, + "Content": { + "type": "object" + }, + "DocumentFormat": { + "type": "string" + }, + "DocumentType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Requires": { + "items": { + "$ref": "#/definitions/AWS::SSM::Document.DocumentRequires" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetType": { + "type": "string" + }, + "UpdateMethod": { + "type": "string" + }, + "VersionName": { + "type": "string" + } + }, + "required": [ + "Content" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::Document" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::Document.AttachmentsSource": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::Document.DocumentRequires": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindow": { + "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": { + "AllowUnassociatedTargets": { + "type": "boolean" + }, + "Cutoff": { + "type": "number" + }, + "Description": { + "type": "string" + }, + "Duration": { + "type": "number" + }, + "EndDate": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Schedule": { + "type": "string" + }, + "ScheduleOffset": { + "type": "number" + }, + "ScheduleTimezone": { + "type": "string" + }, + "StartDate": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AllowUnassociatedTargets", + "Cutoff", + "Duration", + "Name", + "Schedule" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::MaintenanceWindow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTarget": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "OwnerInformation": { + "type": "string" + }, + "ResourceType": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTarget.Targets" + }, + "type": "array" + }, + "WindowId": { + "type": "string" + } + }, + "required": [ + "ResourceType", + "Targets", + "WindowId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::MaintenanceWindowTarget" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTarget.Targets": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask": { + "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": { + "CutoffBehavior": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "LoggingInfo": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.LoggingInfo" + }, + "MaxConcurrency": { + "type": "string" + }, + "MaxErrors": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "ServiceRoleArn": { + "type": "string" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.Target" + }, + "type": "array" + }, + "TaskArn": { + "type": "string" + }, + "TaskInvocationParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters" + }, + "TaskParameters": { + "type": "object" + }, + "TaskType": { + "type": "string" + }, + "WindowId": { + "type": "string" + } + }, + "required": [ + "Priority", + "TaskArn", + "TaskType", + "WindowId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::MaintenanceWindowTask" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.CloudWatchOutputConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchLogGroupName": { + "type": "string" + }, + "CloudWatchOutputEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.LoggingInfo": { + "additionalProperties": false, + "properties": { + "Region": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Prefix": { + "type": "string" + } + }, + "required": [ + "Region", + "S3Bucket" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters": { + "additionalProperties": false, + "properties": { + "DocumentVersion": { + "type": "string" + }, + "Parameters": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters": { + "additionalProperties": false, + "properties": { + "ClientContext": { + "type": "string" + }, + "Payload": { + "type": "string" + }, + "Qualifier": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters": { + "additionalProperties": false, + "properties": { + "CloudWatchOutputConfig": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.CloudWatchOutputConfig" + }, + "Comment": { + "type": "string" + }, + "DocumentHash": { + "type": "string" + }, + "DocumentHashType": { + "type": "string" + }, + "DocumentVersion": { + "type": "string" + }, + "NotificationConfig": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.NotificationConfig" + }, + "OutputS3BucketName": { + "type": "string" + }, + "OutputS3KeyPrefix": { + "type": "string" + }, + "Parameters": { + "type": "object" + }, + "ServiceRoleArn": { + "type": "string" + }, + "TimeoutSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters": { + "additionalProperties": false, + "properties": { + "Input": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.NotificationConfig": { + "additionalProperties": false, + "properties": { + "NotificationArn": { + "type": "string" + }, + "NotificationEvents": { + "items": { + "type": "string" + }, + "type": "array" + }, + "NotificationType": { + "type": "string" + } + }, + "required": [ + "NotificationArn" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.Target": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::SSM::MaintenanceWindowTask.TaskInvocationParameters": { + "additionalProperties": false, + "properties": { + "MaintenanceWindowAutomationParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowAutomationParameters" + }, + "MaintenanceWindowLambdaParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowLambdaParameters" + }, + "MaintenanceWindowRunCommandParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowRunCommandParameters" + }, + "MaintenanceWindowStepFunctionsParameters": { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask.MaintenanceWindowStepFunctionsParameters" + } + }, + "type": "object" + }, + "AWS::SSM::Parameter": { + "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": { + "AllowedPattern": { + "type": "string" + }, + "DataType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Policies": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "Tier": { + "type": "string" + }, + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::Parameter" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::PatchBaseline": { + "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": { + "ApprovalRules": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.RuleGroup" + }, + "ApprovedPatches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ApprovedPatchesComplianceLevel": { + "type": "string" + }, + "ApprovedPatchesEnableNonSecurity": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "GlobalFilters": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup" + }, + "Name": { + "type": "string" + }, + "OperatingSystem": { + "type": "string" + }, + "PatchGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RejectedPatches": { + "items": { + "type": "string" + }, + "type": "array" + }, + "RejectedPatchesAction": { + "type": "string" + }, + "Sources": { + "items": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchSource" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::PatchBaseline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::PatchBaseline.PatchFilter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.PatchFilterGroup": { + "additionalProperties": false, + "properties": { + "PatchFilters": { + "items": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.PatchSource": { + "additionalProperties": false, + "properties": { + "Configuration": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Products": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.PatchStringDate": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::SSM::PatchBaseline.Rule": { + "additionalProperties": false, + "properties": { + "ApproveAfterDays": { + "type": "number" + }, + "ApproveUntilDate": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchStringDate" + }, + "ComplianceLevel": { + "type": "string" + }, + "EnableNonSecurity": { + "type": "boolean" + }, + "PatchFilterGroup": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.PatchFilterGroup" + } + }, + "type": "object" + }, + "AWS::SSM::PatchBaseline.RuleGroup": { + "additionalProperties": false, + "properties": { + "PatchRules": { + "items": { + "$ref": "#/definitions/AWS::SSM::PatchBaseline.Rule" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSM::ResourceDataSync": { + "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": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "BucketRegion": { + "type": "string" + }, + "KMSKeyArn": { + "type": "string" + }, + "S3Destination": { + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.S3Destination" + }, + "SyncFormat": { + "type": "string" + }, + "SyncName": { + "type": "string" + }, + "SyncSource": { + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.SyncSource" + }, + "SyncType": { + "type": "string" + } + }, + "required": [ + "SyncName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::ResourceDataSync" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSM::ResourceDataSync.AwsOrganizationsSource": { + "additionalProperties": false, + "properties": { + "OrganizationSourceType": { + "type": "string" + }, + "OrganizationalUnits": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "OrganizationSourceType" + ], + "type": "object" + }, + "AWS::SSM::ResourceDataSync.S3Destination": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "BucketPrefix": { + "type": "string" + }, + "BucketRegion": { + "type": "string" + }, + "KMSKeyArn": { + "type": "string" + }, + "SyncFormat": { + "type": "string" + } + }, + "required": [ + "BucketName", + "BucketRegion", + "SyncFormat" + ], + "type": "object" + }, + "AWS::SSM::ResourceDataSync.SyncSource": { + "additionalProperties": false, + "properties": { + "AwsOrganizationsSource": { + "$ref": "#/definitions/AWS::SSM::ResourceDataSync.AwsOrganizationsSource" + }, + "IncludeFutureRegions": { + "type": "boolean" + }, + "SourceRegions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SourceType": { + "type": "string" + } + }, + "required": [ + "SourceRegions", + "SourceType" + ], + "type": "object" + }, + "AWS::SSM::ResourcePolicy": { + "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": { + "Policy": { + "type": "object" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "Policy", + "ResourceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSM::ResourcePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact": { + "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": { + "Alias": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Plan": { + "items": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.Stage" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Alias", + "DisplayName", + "Plan", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSMContacts::Contact" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact.ChannelTargetInfo": { + "additionalProperties": false, + "properties": { + "ChannelId": { + "type": "string" + }, + "RetryIntervalInMinutes": { + "type": "number" + } + }, + "required": [ + "ChannelId", + "RetryIntervalInMinutes" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact.ContactTargetInfo": { + "additionalProperties": false, + "properties": { + "ContactId": { + "type": "string" + }, + "IsEssential": { + "type": "boolean" + } + }, + "required": [ + "ContactId", + "IsEssential" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact.Stage": { + "additionalProperties": false, + "properties": { + "DurationInMinutes": { + "type": "number" + }, + "Targets": { + "items": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.Targets" + }, + "type": "array" + } + }, + "required": [ + "DurationInMinutes" + ], + "type": "object" + }, + "AWS::SSMContacts::Contact.Targets": { + "additionalProperties": false, + "properties": { + "ChannelTargetInfo": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.ChannelTargetInfo" + }, + "ContactTargetInfo": { + "$ref": "#/definitions/AWS::SSMContacts::Contact.ContactTargetInfo" + } + }, + "type": "object" + }, + "AWS::SSMContacts::ContactChannel": { + "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": { + "ChannelAddress": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelType": { + "type": "string" + }, + "ContactId": { + "type": "string" + }, + "DeferActivation": { + "type": "boolean" + } + }, + "required": [ + "ChannelAddress", + "ChannelName", + "ChannelType", + "ContactId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSMContacts::ContactChannel" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSMIncidents::ReplicationSet": { + "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": { + "DeletionProtected": { + "type": "boolean" + }, + "Regions": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.ReplicationRegion" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Regions" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSMIncidents::ReplicationSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSMIncidents::ReplicationSet.RegionConfiguration": { + "additionalProperties": false, + "properties": { + "SseKmsKeyId": { + "type": "string" + } + }, + "required": [ + "SseKmsKeyId" + ], + "type": "object" + }, + "AWS::SSMIncidents::ReplicationSet.ReplicationRegion": { + "additionalProperties": false, + "properties": { + "RegionConfiguration": { + "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet.RegionConfiguration" + }, + "RegionName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan": { + "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": { + "Actions": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.Action" + }, + "type": "array" + }, + "ChatChannel": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.ChatChannel" + }, + "DisplayName": { + "type": "string" + }, + "Engagements": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncidentTemplate": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.IncidentTemplate" + }, + "Integrations": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.Integration" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "IncidentTemplate", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSMIncidents::ResponsePlan" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.Action": { + "additionalProperties": false, + "properties": { + "SsmAutomation": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmAutomation" + } + }, + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.ChatChannel": { + "additionalProperties": false, + "properties": { + "ChatbotSns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.DynamicSsmParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.DynamicSsmParameterValue" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.DynamicSsmParameterValue": { + "additionalProperties": false, + "properties": { + "Variable": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.IncidentTemplate": { + "additionalProperties": false, + "properties": { + "DedupeString": { + "type": "string" + }, + "Impact": { + "type": "number" + }, + "IncidentTags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "NotificationTargets": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.NotificationTargetItem" + }, + "type": "array" + }, + "Summary": { + "type": "string" + }, + "Title": { + "type": "string" + } + }, + "required": [ + "Impact", + "Title" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.Integration": { + "additionalProperties": false, + "properties": { + "PagerDutyConfiguration": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.PagerDutyConfiguration" + } + }, + "required": [ + "PagerDutyConfiguration" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.NotificationTargetItem": { + "additionalProperties": false, + "properties": { + "SnsTopicArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.PagerDutyConfiguration": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "PagerDutyIncidentConfiguration": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.PagerDutyIncidentConfiguration" + }, + "SecretId": { + "type": "string" + } + }, + "required": [ + "Name", + "PagerDutyIncidentConfiguration", + "SecretId" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.PagerDutyIncidentConfiguration": { + "additionalProperties": false, + "properties": { + "ServiceId": { + "type": "string" + } + }, + "required": [ + "ServiceId" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.SsmAutomation": { + "additionalProperties": false, + "properties": { + "DocumentName": { + "type": "string" + }, + "DocumentVersion": { + "type": "string" + }, + "DynamicParameters": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.DynamicSsmParameter" + }, + "type": "array" + }, + "Parameters": { + "items": { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan.SsmParameter" + }, + "type": "array" + }, + "RoleArn": { + "type": "string" + }, + "TargetAccount": { + "type": "string" + } + }, + "required": [ + "DocumentName", + "RoleArn" + ], + "type": "object" + }, + "AWS::SSMIncidents::ResponsePlan.SsmParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Values": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Key", + "Values" + ], + "type": "object" + }, + "AWS::SSO::Assignment": { + "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": { + "InstanceArn": { + "type": "string" + }, + "PermissionSetArn": { + "type": "string" + }, + "PrincipalId": { + "type": "string" + }, + "PrincipalType": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "InstanceArn", + "PermissionSetArn", + "PrincipalId", + "PrincipalType", + "TargetId", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSO::Assignment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSO::InstanceAccessControlAttributeConfiguration": { + "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": { + "AccessControlAttributes": { + "items": { + "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttribute" + }, + "type": "array" + }, + "InstanceArn": { + "type": "string" + } + }, + "required": [ + "InstanceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSO::InstanceAccessControlAttributeConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttribute": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::SSO::InstanceAccessControlAttributeConfiguration.AccessControlAttributeValue": { + "additionalProperties": false, + "properties": { + "Source": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Source" + ], + "type": "object" + }, + "AWS::SSO::PermissionSet": { + "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": { + "CustomerManagedPolicyReferences": { + "items": { + "$ref": "#/definitions/AWS::SSO::PermissionSet.CustomerManagedPolicyReference" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "InlinePolicy": { + "type": "object" + }, + "InstanceArn": { + "type": "string" + }, + "ManagedPolicies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "PermissionsBoundary": { + "$ref": "#/definitions/AWS::SSO::PermissionSet.PermissionsBoundary" + }, + "RelayStateType": { + "type": "string" + }, + "SessionDuration": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "InstanceArn", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SSO::PermissionSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SSO::PermissionSet.CustomerManagedPolicyReference": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Path": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::SSO::PermissionSet.PermissionsBoundary": { + "additionalProperties": false, + "properties": { + "CustomerManagedPolicyReference": { + "$ref": "#/definitions/AWS::SSO::PermissionSet.CustomerManagedPolicyReference" + }, + "ManagedPolicyArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::App": { + "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": { + "AppName": { + "type": "string" + }, + "AppType": { + "type": "string" + }, + "DomainId": { + "type": "string" + }, + "ResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::App.ResourceSpec" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserProfileName": { + "type": "string" + } + }, + "required": [ + "AppName", + "AppType", + "DomainId", + "UserProfileName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::App" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::App.ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "type": "string" + }, + "SageMakerImageArn": { + "type": "string" + }, + "SageMakerImageVersionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::AppImageConfig": { + "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": { + "AppImageConfigName": { + "type": "string" + }, + "KernelGatewayImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AppImageConfigName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::AppImageConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::AppImageConfig.FileSystemConfig": { + "additionalProperties": false, + "properties": { + "DefaultGid": { + "type": "number" + }, + "DefaultUid": { + "type": "number" + }, + "MountPath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::AppImageConfig.KernelGatewayImageConfig": { + "additionalProperties": false, + "properties": { + "FileSystemConfig": { + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.FileSystemConfig" + }, + "KernelSpecs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig.KernelSpec" + }, + "type": "array" + } + }, + "required": [ + "KernelSpecs" + ], + "type": "object" + }, + "AWS::SageMaker::AppImageConfig.KernelSpec": { + "additionalProperties": false, + "properties": { + "DisplayName": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::SageMaker::CodeRepository": { + "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": { + "CodeRepositoryName": { + "type": "string" + }, + "GitConfig": { + "$ref": "#/definitions/AWS::SageMaker::CodeRepository.GitConfig" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "GitConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::CodeRepository" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::CodeRepository.GitConfig": { + "additionalProperties": false, + "properties": { + "Branch": { + "type": "string" + }, + "RepositoryUrl": { + "type": "string" + }, + "SecretArn": { + "type": "string" + } + }, + "required": [ + "RepositoryUrl" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition": { + "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": { + "DataQualityAppSpecification": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityAppSpecification" + }, + "DataQualityBaselineConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig" + }, + "DataQualityJobInput": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput" + }, + "DataQualityJobOutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig" + }, + "EndpointName": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "JobResources": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringResources" + }, + "NetworkConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.NetworkConfig" + }, + "RoleArn": { + "type": "string" + }, + "StoppingCondition": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StoppingCondition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DataQualityAppSpecification", + "DataQualityJobInput", + "DataQualityJobOutputConfig", + "JobResources", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::DataQualityJobDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.BatchTransformInput": { + "additionalProperties": false, + "properties": { + "DataCapturedDestinationS3Uri": { + "type": "string" + }, + "DatasetFormat": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.DatasetFormat" + }, + "LocalPath": { + "type": "string" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + } + }, + "required": [ + "DataCapturedDestinationS3Uri", + "DatasetFormat", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.ClusterConfig": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "VolumeKmsKeyId": { + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InstanceCount", + "InstanceType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.Csv": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.DataQualityAppSpecification": { + "additionalProperties": false, + "properties": { + "ContainerArguments": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContainerEntrypoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ImageUri": { + "type": "string" + }, + "PostAnalyticsProcessorSourceUri": { + "type": "string" + }, + "RecordPreprocessorSourceUri": { + "type": "string" + } + }, + "required": [ + "ImageUri" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.DataQualityBaselineConfig": { + "additionalProperties": false, + "properties": { + "BaseliningJobName": { + "type": "string" + }, + "ConstraintsResource": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ConstraintsResource" + }, + "StatisticsResource": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.StatisticsResource" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.DataQualityJobInput": { + "additionalProperties": false, + "properties": { + "BatchTransformInput": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.BatchTransformInput" + }, + "EndpointInput": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.EndpointInput" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.DatasetFormat": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.Csv" + }, + "Json": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.Json" + }, + "Parquet": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.EndpointInput": { + "additionalProperties": false, + "properties": { + "EndpointName": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + } + }, + "required": [ + "EndpointName", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.Json": { + "additionalProperties": false, + "properties": { + "Line": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.MonitoringOutput": { + "additionalProperties": false, + "properties": { + "S3Output": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.S3Output" + } + }, + "required": [ + "S3Output" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.MonitoringOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MonitoringOutputs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.MonitoringOutput" + }, + "type": "array" + } + }, + "required": [ + "MonitoringOutputs" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.MonitoringResources": { + "additionalProperties": false, + "properties": { + "ClusterConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.ClusterConfig" + } + }, + "required": [ + "ClusterConfig" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.NetworkConfig": { + "additionalProperties": false, + "properties": { + "EnableInterContainerTrafficEncryption": { + "type": "boolean" + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition.VpcConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.S3Output": { + "additionalProperties": false, + "properties": { + "LocalPath": { + "type": "string" + }, + "S3UploadMode": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "LocalPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.StatisticsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.StoppingCondition": { + "additionalProperties": false, + "properties": { + "MaxRuntimeInSeconds": { + "type": "number" + } + }, + "required": [ + "MaxRuntimeInSeconds" + ], + "type": "object" + }, + "AWS::SageMaker::DataQualityJobDefinition.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "Subnets" + ], + "type": "object" + }, + "AWS::SageMaker::Device": { + "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": { + "Device": { + "$ref": "#/definitions/AWS::SageMaker::Device.Device" + }, + "DeviceFleetName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DeviceFleetName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Device" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::Device.Device": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DeviceName": { + "type": "string" + }, + "IotThingName": { + "type": "string" + } + }, + "required": [ + "DeviceName" + ], + "type": "object" + }, + "AWS::SageMaker::DeviceFleet": { + "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": { + "Description": { + "type": "string" + }, + "DeviceFleetName": { + "type": "string" + }, + "OutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::DeviceFleet.EdgeOutputConfig" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DeviceFleetName", + "OutputConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::DeviceFleet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::DeviceFleet.EdgeOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "S3OutputLocation": { + "type": "string" + } + }, + "required": [ + "S3OutputLocation" + ], + "type": "object" + }, + "AWS::SageMaker::Domain": { + "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": { + "AppNetworkAccessType": { + "type": "string" + }, + "AppSecurityGroupManagement": { + "type": "string" + }, + "AuthMode": { + "type": "string" + }, + "DefaultUserSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.UserSettings" + }, + "DomainName": { + "type": "string" + }, + "DomainSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.DomainSettings" + }, + "KmsKeyId": { + "type": "string" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "AuthMode", + "DefaultUserSettings", + "DomainName", + "SubnetIds", + "VpcId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::Domain.CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "type": "string" + }, + "ImageName": { + "type": "string" + }, + "ImageVersionNumber": { + "type": "number" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "AWS::SageMaker::Domain.DomainSettings": { + "additionalProperties": false, + "properties": { + "RStudioServerProDomainSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.RStudioServerProDomainSettings" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Domain.CustomImage" + }, + "type": "array" + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.RSessionAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Domain.CustomImage" + }, + "type": "array" + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "type": "string" + }, + "UserGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.RStudioServerProDomainSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::Domain.ResourceSpec" + }, + "DomainExecutionRoleArn": { + "type": "string" + }, + "RStudioConnectUrl": { + "type": "string" + }, + "RStudioPackageManagerUrl": { + "type": "string" + } + }, + "required": [ + "DomainExecutionRoleArn" + ], + "type": "object" + }, + "AWS::SageMaker::Domain.ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "type": "string" + }, + "LifecycleConfigArn": { + "type": "string" + }, + "SageMakerImageArn": { + "type": "string" + }, + "SageMakerImageVersionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "type": "string" + }, + "S3KmsKeyId": { + "type": "string" + }, + "S3OutputPath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Domain.UserSettings": { + "additionalProperties": false, + "properties": { + "ExecutionRole": { + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.KernelGatewayAppSettings" + }, + "RSessionAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.RSessionAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.RStudioServerProAppSettings" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SharingSettings": { + "$ref": "#/definitions/AWS::SageMaker::Domain.SharingSettings" + } + }, + "type": "object" + }, + "AWS::SageMaker::Endpoint": { + "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": { + "DeploymentConfig": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.DeploymentConfig" + }, + "EndpointConfigName": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "ExcludeRetainedVariantProperties": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.VariantProperty" + }, + "type": "array" + }, + "RetainAllVariantProperties": { + "type": "boolean" + }, + "RetainDeploymentConfig": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "EndpointConfigName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Endpoint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.Alarm": { + "additionalProperties": false, + "properties": { + "AlarmName": { + "type": "string" + } + }, + "required": [ + "AlarmName" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.AutoRollbackConfig": { + "additionalProperties": false, + "properties": { + "Alarms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.Alarm" + }, + "type": "array" + } + }, + "required": [ + "Alarms" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy": { + "additionalProperties": false, + "properties": { + "MaximumExecutionTimeoutInSeconds": { + "type": "number" + }, + "TerminationWaitInSeconds": { + "type": "number" + }, + "TrafficRoutingConfiguration": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.TrafficRoutingConfig" + } + }, + "required": [ + "TrafficRoutingConfiguration" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.CapacitySize": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.DeploymentConfig": { + "additionalProperties": false, + "properties": { + "AutoRollbackConfiguration": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.AutoRollbackConfig" + }, + "BlueGreenUpdatePolicy": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.BlueGreenUpdatePolicy" + } + }, + "required": [ + "BlueGreenUpdatePolicy" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.TrafficRoutingConfig": { + "additionalProperties": false, + "properties": { + "CanarySize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "LinearStepSize": { + "$ref": "#/definitions/AWS::SageMaker::Endpoint.CapacitySize" + }, + "Type": { + "type": "string" + }, + "WaitIntervalInSeconds": { + "type": "number" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SageMaker::Endpoint.VariantProperty": { + "additionalProperties": false, + "properties": { + "VariantPropertyType": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig": { + "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": { + "AsyncInferenceConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceConfig" + }, + "DataCaptureConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.DataCaptureConfig" + }, + "EndpointConfigName": { + "type": "string" + }, + "ExplainerConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ExplainerConfig" + }, + "KmsKeyId": { + "type": "string" + }, + "ProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "type": "array" + }, + "ShadowProductionVariants": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ProductionVariant" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ProductionVariants" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::EndpointConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig": { + "additionalProperties": false, + "properties": { + "MaxConcurrentInvocationsPerInstance": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceConfig": { + "additionalProperties": false, + "properties": { + "ClientConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceClientConfig" + }, + "OutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig" + } + }, + "required": [ + "OutputConfig" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig": { + "additionalProperties": false, + "properties": { + "ErrorTopic": { + "type": "string" + }, + "SuccessTopic": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.AsyncInferenceOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "NotificationConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.AsyncInferenceNotificationConfig" + }, + "S3OutputPath": { + "type": "string" + } + }, + "required": [ + "S3OutputPath" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader": { + "additionalProperties": false, + "properties": { + "CsvContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "JsonContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.CaptureOption": { + "additionalProperties": false, + "properties": { + "CaptureMode": { + "type": "string" + } + }, + "required": [ + "CaptureMode" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ClarifyExplainerConfig": { + "additionalProperties": false, + "properties": { + "EnableExplanations": { + "type": "string" + }, + "InferenceConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyInferenceConfig" + }, + "ShapConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyShapConfig" + } + }, + "required": [ + "ShapConfig" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ClarifyFeatureType": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ClarifyHeader": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ClarifyInferenceConfig": { + "additionalProperties": false, + "properties": { + "ContentTemplate": { + "type": "string" + }, + "FeatureHeaders": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyHeader" + }, + "type": "array" + }, + "FeatureTypes": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyFeatureType" + }, + "type": "array" + }, + "FeaturesAttribute": { + "type": "string" + }, + "LabelAttribute": { + "type": "string" + }, + "LabelHeaders": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyHeader" + }, + "type": "array" + }, + "LabelIndex": { + "type": "number" + }, + "MaxPayloadInMB": { + "type": "number" + }, + "MaxRecordCount": { + "type": "number" + }, + "ProbabilityAttribute": { + "type": "string" + }, + "ProbabilityIndex": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ClarifyShapBaselineConfig": { + "additionalProperties": false, + "properties": { + "MimeType": { + "type": "string" + }, + "ShapBaseline": { + "type": "string" + }, + "ShapBaselineUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ClarifyShapConfig": { + "additionalProperties": false, + "properties": { + "NumberOfSamples": { + "type": "number" + }, + "Seed": { + "type": "number" + }, + "ShapBaselineConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyShapBaselineConfig" + }, + "TextConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyTextConfig" + }, + "UseLogit": { + "type": "boolean" + } + }, + "required": [ + "ShapBaselineConfig" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ClarifyTextConfig": { + "additionalProperties": false, + "properties": { + "Granularity": { + "type": "string" + }, + "Language": { + "type": "string" + } + }, + "required": [ + "Granularity", + "Language" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.DataCaptureConfig": { + "additionalProperties": false, + "properties": { + "CaptureContentTypeHeader": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureContentTypeHeader" + }, + "CaptureOptions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.CaptureOption" + }, + "type": "array" + }, + "DestinationS3Uri": { + "type": "string" + }, + "EnableCapture": { + "type": "boolean" + }, + "InitialSamplingPercentage": { + "type": "number" + }, + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "CaptureOptions", + "DestinationS3Uri", + "InitialSamplingPercentage" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ExplainerConfig": { + "additionalProperties": false, + "properties": { + "ClarifyExplainerConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ClarifyExplainerConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ProductionVariant": { + "additionalProperties": false, + "properties": { + "AcceleratorType": { + "type": "string" + }, + "ContainerStartupHealthCheckTimeoutInSeconds": { + "type": "number" + }, + "InitialInstanceCount": { + "type": "number" + }, + "InitialVariantWeight": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "ModelDataDownloadTimeoutInSeconds": { + "type": "number" + }, + "ModelName": { + "type": "string" + }, + "ServerlessConfig": { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig.ServerlessConfig" + }, + "VariantName": { + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InitialVariantWeight", + "ModelName", + "VariantName" + ], + "type": "object" + }, + "AWS::SageMaker::EndpointConfig.ServerlessConfig": { + "additionalProperties": false, + "properties": { + "MaxConcurrency": { + "type": "number" + }, + "MemorySizeInMB": { + "type": "number" + } + }, + "required": [ + "MaxConcurrency", + "MemorySizeInMB" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup": { + "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": { + "Description": { + "type": "string" + }, + "EventTimeFeatureName": { + "type": "string" + }, + "FeatureDefinitions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.FeatureDefinition" + }, + "type": "array" + }, + "FeatureGroupName": { + "type": "string" + }, + "OfflineStoreConfig": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OfflineStoreConfig" + }, + "OnlineStoreConfig": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OnlineStoreConfig" + }, + "RecordIdentifierFeatureName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "EventTimeFeatureName", + "FeatureDefinitions", + "FeatureGroupName", + "RecordIdentifierFeatureName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::FeatureGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup.DataCatalogConfig": { + "additionalProperties": false, + "properties": { + "Catalog": { + "type": "string" + }, + "Database": { + "type": "string" + }, + "TableName": { + "type": "string" + } + }, + "required": [ + "Catalog", + "Database", + "TableName" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup.FeatureDefinition": { + "additionalProperties": false, + "properties": { + "FeatureName": { + "type": "string" + }, + "FeatureType": { + "type": "string" + } + }, + "required": [ + "FeatureName", + "FeatureType" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup.OfflineStoreConfig": { + "additionalProperties": false, + "properties": { + "DataCatalogConfig": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.DataCatalogConfig" + }, + "DisableGlueTableCreation": { + "type": "boolean" + }, + "S3StorageConfig": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.S3StorageConfig" + }, + "TableFormat": { + "type": "string" + } + }, + "required": [ + "S3StorageConfig" + ], + "type": "object" + }, + "AWS::SageMaker::FeatureGroup.OnlineStoreConfig": { + "additionalProperties": false, + "properties": { + "EnableOnlineStore": { + "type": "boolean" + }, + "SecurityConfig": { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup.OnlineStoreSecurityConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::FeatureGroup.OnlineStoreSecurityConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::FeatureGroup.S3StorageConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::Image": { + "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": { + "ImageDescription": { + "type": "string" + }, + "ImageDisplayName": { + "type": "string" + }, + "ImageName": { + "type": "string" + }, + "ImageRoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ImageName", + "ImageRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Image" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::ImageVersion": { + "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": { + "BaseImage": { + "type": "string" + }, + "ImageName": { + "type": "string" + } + }, + "required": [ + "BaseImage", + "ImageName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ImageVersion" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::Model": { + "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": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" + }, + "type": "array" + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "InferenceExecutionConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.InferenceExecutionConfig" + }, + "ModelName": { + "type": "string" + }, + "PrimaryContainer": { + "$ref": "#/definitions/AWS::SageMaker::Model.ContainerDefinition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.VpcConfig" + } + }, + "required": [ + "ExecutionRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Model" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::Model.ContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "type": "object" + }, + "Image": { + "type": "string" + }, + "ImageConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.ImageConfig" + }, + "InferenceSpecificationName": { + "type": "string" + }, + "Mode": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "MultiModelConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.MultiModelConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::Model.ImageConfig": { + "additionalProperties": false, + "properties": { + "RepositoryAccessMode": { + "type": "string" + }, + "RepositoryAuthConfig": { + "$ref": "#/definitions/AWS::SageMaker::Model.RepositoryAuthConfig" + } + }, + "required": [ + "RepositoryAccessMode" + ], + "type": "object" + }, + "AWS::SageMaker::Model.InferenceExecutionConfig": { + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::SageMaker::Model.MultiModelConfig": { + "additionalProperties": false, + "properties": { + "ModelCacheSetting": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Model.RepositoryAuthConfig": { + "additionalProperties": false, + "properties": { + "RepositoryCredentialsProviderArn": { + "type": "string" + } + }, + "required": [ + "RepositoryCredentialsProviderArn" + ], + "type": "object" + }, + "AWS::SageMaker::Model.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "Subnets" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition": { + "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": { + "EndpointName": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "JobResources": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringResources" + }, + "ModelBiasAppSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ModelBiasAppSpecification" + }, + "ModelBiasBaselineConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ModelBiasBaselineConfig" + }, + "ModelBiasJobInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ModelBiasJobInput" + }, + "ModelBiasJobOutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutputConfig" + }, + "NetworkConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.NetworkConfig" + }, + "RoleArn": { + "type": "string" + }, + "StoppingCondition": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.StoppingCondition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "JobResources", + "ModelBiasAppSpecification", + "ModelBiasJobInput", + "ModelBiasJobOutputConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ModelBiasJobDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.BatchTransformInput": { + "additionalProperties": false, + "properties": { + "DataCapturedDestinationS3Uri": { + "type": "string" + }, + "DatasetFormat": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.DatasetFormat" + }, + "EndTimeOffset": { + "type": "string" + }, + "FeaturesAttribute": { + "type": "string" + }, + "InferenceAttribute": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "ProbabilityAttribute": { + "type": "string" + }, + "ProbabilityThresholdAttribute": { + "type": "number" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + }, + "StartTimeOffset": { + "type": "string" + } + }, + "required": [ + "DataCapturedDestinationS3Uri", + "DatasetFormat", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.ClusterConfig": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "VolumeKmsKeyId": { + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InstanceCount", + "InstanceType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.ConstraintsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.Csv": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.DatasetFormat": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.Csv" + }, + "Json": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.Json" + }, + "Parquet": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.EndpointInput": { + "additionalProperties": false, + "properties": { + "EndTimeOffset": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "FeaturesAttribute": { + "type": "string" + }, + "InferenceAttribute": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "ProbabilityAttribute": { + "type": "string" + }, + "ProbabilityThresholdAttribute": { + "type": "number" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + }, + "StartTimeOffset": { + "type": "string" + } + }, + "required": [ + "EndpointName", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.Json": { + "additionalProperties": false, + "properties": { + "Line": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.ModelBiasAppSpecification": { + "additionalProperties": false, + "properties": { + "ConfigUri": { + "type": "string" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ImageUri": { + "type": "string" + } + }, + "required": [ + "ConfigUri", + "ImageUri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.ModelBiasBaselineConfig": { + "additionalProperties": false, + "properties": { + "BaseliningJobName": { + "type": "string" + }, + "ConstraintsResource": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ConstraintsResource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.ModelBiasJobInput": { + "additionalProperties": false, + "properties": { + "BatchTransformInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.BatchTransformInput" + }, + "EndpointInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.EndpointInput" + }, + "GroundTruthS3Input": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringGroundTruthS3Input" + } + }, + "required": [ + "GroundTruthS3Input" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.MonitoringGroundTruthS3Input": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutput": { + "additionalProperties": false, + "properties": { + "S3Output": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.S3Output" + } + }, + "required": [ + "S3Output" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MonitoringOutputs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.MonitoringOutput" + }, + "type": "array" + } + }, + "required": [ + "MonitoringOutputs" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.MonitoringResources": { + "additionalProperties": false, + "properties": { + "ClusterConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.ClusterConfig" + } + }, + "required": [ + "ClusterConfig" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.NetworkConfig": { + "additionalProperties": false, + "properties": { + "EnableInterContainerTrafficEncryption": { + "type": "boolean" + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition.VpcConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.S3Output": { + "additionalProperties": false, + "properties": { + "LocalPath": { + "type": "string" + }, + "S3UploadMode": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "LocalPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.StoppingCondition": { + "additionalProperties": false, + "properties": { + "MaxRuntimeInSeconds": { + "type": "number" + } + }, + "required": [ + "MaxRuntimeInSeconds" + ], + "type": "object" + }, + "AWS::SageMaker::ModelBiasJobDefinition.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "Subnets" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition": { + "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": { + "EndpointName": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "JobResources": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringResources" + }, + "ModelExplainabilityAppSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityAppSpecification" + }, + "ModelExplainabilityBaselineConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityBaselineConfig" + }, + "ModelExplainabilityJobInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityJobInput" + }, + "ModelExplainabilityJobOutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutputConfig" + }, + "NetworkConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.NetworkConfig" + }, + "RoleArn": { + "type": "string" + }, + "StoppingCondition": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.StoppingCondition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "JobResources", + "ModelExplainabilityAppSpecification", + "ModelExplainabilityJobInput", + "ModelExplainabilityJobOutputConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ModelExplainabilityJobDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.BatchTransformInput": { + "additionalProperties": false, + "properties": { + "DataCapturedDestinationS3Uri": { + "type": "string" + }, + "DatasetFormat": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.DatasetFormat" + }, + "FeaturesAttribute": { + "type": "string" + }, + "InferenceAttribute": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "ProbabilityAttribute": { + "type": "string" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + } + }, + "required": [ + "DataCapturedDestinationS3Uri", + "DatasetFormat", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.ClusterConfig": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "VolumeKmsKeyId": { + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InstanceCount", + "InstanceType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.ConstraintsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.Csv": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.DatasetFormat": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.Csv" + }, + "Json": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.Json" + }, + "Parquet": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.EndpointInput": { + "additionalProperties": false, + "properties": { + "EndpointName": { + "type": "string" + }, + "FeaturesAttribute": { + "type": "string" + }, + "InferenceAttribute": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "ProbabilityAttribute": { + "type": "string" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + } + }, + "required": [ + "EndpointName", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.Json": { + "additionalProperties": false, + "properties": { + "Line": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityAppSpecification": { + "additionalProperties": false, + "properties": { + "ConfigUri": { + "type": "string" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ImageUri": { + "type": "string" + } + }, + "required": [ + "ConfigUri", + "ImageUri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityBaselineConfig": { + "additionalProperties": false, + "properties": { + "BaseliningJobName": { + "type": "string" + }, + "ConstraintsResource": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ConstraintsResource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.ModelExplainabilityJobInput": { + "additionalProperties": false, + "properties": { + "BatchTransformInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.BatchTransformInput" + }, + "EndpointInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.EndpointInput" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutput": { + "additionalProperties": false, + "properties": { + "S3Output": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.S3Output" + } + }, + "required": [ + "S3Output" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MonitoringOutputs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringOutput" + }, + "type": "array" + } + }, + "required": [ + "MonitoringOutputs" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.MonitoringResources": { + "additionalProperties": false, + "properties": { + "ClusterConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.ClusterConfig" + } + }, + "required": [ + "ClusterConfig" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.NetworkConfig": { + "additionalProperties": false, + "properties": { + "EnableInterContainerTrafficEncryption": { + "type": "boolean" + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition.VpcConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.S3Output": { + "additionalProperties": false, + "properties": { + "LocalPath": { + "type": "string" + }, + "S3UploadMode": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "LocalPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.StoppingCondition": { + "additionalProperties": false, + "properties": { + "MaxRuntimeInSeconds": { + "type": "number" + } + }, + "required": [ + "MaxRuntimeInSeconds" + ], + "type": "object" + }, + "AWS::SageMaker::ModelExplainabilityJobDefinition.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "Subnets" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage": { + "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": { + "AdditionalInferenceSpecificationDefinition": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition" + }, + "AdditionalInferenceSpecifications": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition" + }, + "type": "array" + }, + "AdditionalInferenceSpecificationsToAdd": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition" + }, + "type": "array" + }, + "ApprovalDescription": { + "type": "string" + }, + "CertifyForMarketplace": { + "type": "boolean" + }, + "ClientToken": { + "type": "string" + }, + "CreatedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.UserContext" + }, + "CustomerMetadataProperties": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Domain": { + "type": "string" + }, + "DriftCheckBaselines": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckBaselines" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "InferenceSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.InferenceSpecification" + }, + "LastModifiedBy": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.UserContext" + }, + "LastModifiedTime": { + "type": "string" + }, + "MetadataProperties": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetadataProperties" + }, + "ModelApprovalStatus": { + "type": "string" + }, + "ModelMetrics": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelMetrics" + }, + "ModelPackageDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageName": { + "type": "string" + }, + "ModelPackageStatusDetails": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusDetails" + }, + "ModelPackageStatusItem": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusItem" + }, + "ModelPackageVersion": { + "type": "number" + }, + "SamplePayloadUrl": { + "type": "string" + }, + "SourceAlgorithmSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.SourceAlgorithmSpecification" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Task": { + "type": "string" + }, + "ValidationSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ValidationSpecification" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ModelPackage" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.AdditionalInferenceSpecificationDefinition": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageContainerDefinition" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "SupportedContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SupportedRealtimeInferenceInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SupportedResponseMIMETypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SupportedTransformInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Containers", + "Name" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.Bias": { + "additionalProperties": false, + "properties": { + "PostTrainingReport": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + }, + "PreTrainingReport": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + }, + "Report": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.DataSource": { + "additionalProperties": false, + "properties": { + "S3DataSource": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.S3DataSource" + } + }, + "required": [ + "S3DataSource" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.DriftCheckBaselines": { + "additionalProperties": false, + "properties": { + "Bias": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckBias" + }, + "Explainability": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckExplainability" + }, + "ModelDataQuality": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckModelDataQuality" + }, + "ModelQuality": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DriftCheckModelQuality" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.DriftCheckBias": { + "additionalProperties": false, + "properties": { + "ConfigFile": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.FileSource" + }, + "PostTrainingConstraints": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + }, + "PreTrainingConstraints": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.DriftCheckExplainability": { + "additionalProperties": false, + "properties": { + "ConfigFile": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.FileSource" + }, + "Constraints": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.DriftCheckModelDataQuality": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + }, + "Statistics": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.DriftCheckModelQuality": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + }, + "Statistics": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.Explainability": { + "additionalProperties": false, + "properties": { + "Report": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.FileSource": { + "additionalProperties": false, + "properties": { + "ContentDigest": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.InferenceSpecification": { + "additionalProperties": false, + "properties": { + "Containers": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageContainerDefinition" + }, + "type": "array" + }, + "SupportedContentTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SupportedRealtimeInferenceInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SupportedResponseMIMETypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SupportedTransformInstanceTypes": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Containers", + "SupportedContentTypes", + "SupportedResponseMIMETypes" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.MetadataProperties": { + "additionalProperties": false, + "properties": { + "CommitId": { + "type": "string" + }, + "GeneratedBy": { + "type": "string" + }, + "ProjectId": { + "type": "string" + }, + "Repository": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.MetricsSource": { + "additionalProperties": false, + "properties": { + "ContentDigest": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "ContentType", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ModelDataQuality": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + }, + "Statistics": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ModelInput": { + "additionalProperties": false, + "properties": { + "DataInputConfig": { + "type": "string" + } + }, + "required": [ + "DataInputConfig" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ModelMetrics": { + "additionalProperties": false, + "properties": { + "Bias": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.Bias" + }, + "Explainability": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.Explainability" + }, + "ModelDataQuality": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelDataQuality" + }, + "ModelQuality": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelQuality" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ModelPackageContainerDefinition": { + "additionalProperties": false, + "properties": { + "ContainerHostname": { + "type": "string" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "Framework": { + "type": "string" + }, + "FrameworkVersion": { + "type": "string" + }, + "Image": { + "type": "string" + }, + "ImageDigest": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + }, + "ModelInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelInput" + }, + "NearestModelName": { + "type": "string" + }, + "ProductId": { + "type": "string" + } + }, + "required": [ + "Image" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ModelPackageStatusDetails": { + "additionalProperties": false, + "properties": { + "ImageScanStatuses": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusItem" + }, + "type": "array" + }, + "ValidationStatuses": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ModelPackageStatusItem" + }, + "type": "array" + } + }, + "required": [ + "ValidationStatuses" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ModelPackageStatusItem": { + "additionalProperties": false, + "properties": { + "FailureReason": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Status": { + "type": "string" + } + }, + "required": [ + "Name", + "Status" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ModelQuality": { + "additionalProperties": false, + "properties": { + "Constraints": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + }, + "Statistics": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.MetricsSource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.S3DataSource": { + "additionalProperties": false, + "properties": { + "S3DataType": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3DataType", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.SourceAlgorithm": { + "additionalProperties": false, + "properties": { + "AlgorithmName": { + "type": "string" + }, + "ModelDataUrl": { + "type": "string" + } + }, + "required": [ + "AlgorithmName" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.SourceAlgorithmSpecification": { + "additionalProperties": false, + "properties": { + "SourceAlgorithms": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.SourceAlgorithm" + }, + "type": "array" + } + }, + "required": [ + "SourceAlgorithms" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.TransformInput": { + "additionalProperties": false, + "properties": { + "CompressionType": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "DataSource": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.DataSource" + }, + "SplitType": { + "type": "string" + } + }, + "required": [ + "DataSource" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.TransformJobDefinition": { + "additionalProperties": false, + "properties": { + "BatchStrategy": { + "type": "string" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "MaxConcurrentTransforms": { + "type": "number" + }, + "MaxPayloadInMB": { + "type": "number" + }, + "TransformInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformInput" + }, + "TransformOutput": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformOutput" + }, + "TransformResources": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformResources" + } + }, + "required": [ + "TransformInput", + "TransformOutput", + "TransformResources" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.TransformOutput": { + "additionalProperties": false, + "properties": { + "Accept": { + "type": "string" + }, + "AssembleWith": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "S3OutputPath": { + "type": "string" + } + }, + "required": [ + "S3OutputPath" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.TransformResources": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "VolumeKmsKeyId": { + "type": "string" + } + }, + "required": [ + "InstanceCount", + "InstanceType" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.UserContext": { + "additionalProperties": false, + "properties": { + "DomainId": { + "type": "string" + }, + "UserProfileArn": { + "type": "string" + }, + "UserProfileName": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ValidationProfile": { + "additionalProperties": false, + "properties": { + "ProfileName": { + "type": "string" + }, + "TransformJobDefinition": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.TransformJobDefinition" + } + }, + "required": [ + "ProfileName", + "TransformJobDefinition" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackage.ValidationSpecification": { + "additionalProperties": false, + "properties": { + "ValidationProfiles": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage.ValidationProfile" + }, + "type": "array" + }, + "ValidationRole": { + "type": "string" + } + }, + "required": [ + "ValidationProfiles", + "ValidationRole" + ], + "type": "object" + }, + "AWS::SageMaker::ModelPackageGroup": { + "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": { + "ModelPackageGroupDescription": { + "type": "string" + }, + "ModelPackageGroupName": { + "type": "string" + }, + "ModelPackageGroupPolicy": { + "type": "object" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ModelPackageGroupName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ModelPackageGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition": { + "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": { + "EndpointName": { + "type": "string" + }, + "JobDefinitionName": { + "type": "string" + }, + "JobResources": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringResources" + }, + "ModelQualityAppSpecification": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ModelQualityAppSpecification" + }, + "ModelQualityBaselineConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ModelQualityBaselineConfig" + }, + "ModelQualityJobInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ModelQualityJobInput" + }, + "ModelQualityJobOutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutputConfig" + }, + "NetworkConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.NetworkConfig" + }, + "RoleArn": { + "type": "string" + }, + "StoppingCondition": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.StoppingCondition" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "JobResources", + "ModelQualityAppSpecification", + "ModelQualityJobInput", + "ModelQualityJobOutputConfig", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::ModelQualityJobDefinition" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.BatchTransformInput": { + "additionalProperties": false, + "properties": { + "DataCapturedDestinationS3Uri": { + "type": "string" + }, + "DatasetFormat": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.DatasetFormat" + }, + "EndTimeOffset": { + "type": "string" + }, + "InferenceAttribute": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "ProbabilityAttribute": { + "type": "string" + }, + "ProbabilityThresholdAttribute": { + "type": "number" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + }, + "StartTimeOffset": { + "type": "string" + } + }, + "required": [ + "DataCapturedDestinationS3Uri", + "DatasetFormat", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.ClusterConfig": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "VolumeKmsKeyId": { + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InstanceCount", + "InstanceType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.ConstraintsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.Csv": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.DatasetFormat": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.Csv" + }, + "Json": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.Json" + }, + "Parquet": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.EndpointInput": { + "additionalProperties": false, + "properties": { + "EndTimeOffset": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "InferenceAttribute": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "ProbabilityAttribute": { + "type": "string" + }, + "ProbabilityThresholdAttribute": { + "type": "number" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + }, + "StartTimeOffset": { + "type": "string" + } + }, + "required": [ + "EndpointName", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.Json": { + "additionalProperties": false, + "properties": { + "Line": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.ModelQualityAppSpecification": { + "additionalProperties": false, + "properties": { + "ContainerArguments": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContainerEntrypoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "ImageUri": { + "type": "string" + }, + "PostAnalyticsProcessorSourceUri": { + "type": "string" + }, + "ProblemType": { + "type": "string" + }, + "RecordPreprocessorSourceUri": { + "type": "string" + } + }, + "required": [ + "ImageUri", + "ProblemType" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.ModelQualityBaselineConfig": { + "additionalProperties": false, + "properties": { + "BaseliningJobName": { + "type": "string" + }, + "ConstraintsResource": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ConstraintsResource" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.ModelQualityJobInput": { + "additionalProperties": false, + "properties": { + "BatchTransformInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.BatchTransformInput" + }, + "EndpointInput": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.EndpointInput" + }, + "GroundTruthS3Input": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringGroundTruthS3Input" + } + }, + "required": [ + "GroundTruthS3Input" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.MonitoringGroundTruthS3Input": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "required": [ + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutput": { + "additionalProperties": false, + "properties": { + "S3Output": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.S3Output" + } + }, + "required": [ + "S3Output" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MonitoringOutputs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.MonitoringOutput" + }, + "type": "array" + } + }, + "required": [ + "MonitoringOutputs" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.MonitoringResources": { + "additionalProperties": false, + "properties": { + "ClusterConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.ClusterConfig" + } + }, + "required": [ + "ClusterConfig" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.NetworkConfig": { + "additionalProperties": false, + "properties": { + "EnableInterContainerTrafficEncryption": { + "type": "boolean" + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition.VpcConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.S3Output": { + "additionalProperties": false, + "properties": { + "LocalPath": { + "type": "string" + }, + "S3UploadMode": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "LocalPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.StoppingCondition": { + "additionalProperties": false, + "properties": { + "MaxRuntimeInSeconds": { + "type": "number" + } + }, + "required": [ + "MaxRuntimeInSeconds" + ], + "type": "object" + }, + "AWS::SageMaker::ModelQualityJobDefinition.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "Subnets" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule": { + "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": { + "EndpointName": { + "type": "string" + }, + "FailureReason": { + "type": "string" + }, + "LastMonitoringExecutionSummary": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary" + }, + "MonitoringScheduleConfig": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringScheduleConfig" + }, + "MonitoringScheduleName": { + "type": "string" + }, + "MonitoringScheduleStatus": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "MonitoringScheduleConfig", + "MonitoringScheduleName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::MonitoringSchedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.BaselineConfig": { + "additionalProperties": false, + "properties": { + "ConstraintsResource": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.ConstraintsResource" + }, + "StatisticsResource": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.StatisticsResource" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.BatchTransformInput": { + "additionalProperties": false, + "properties": { + "DataCapturedDestinationS3Uri": { + "type": "string" + }, + "DatasetFormat": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.DatasetFormat" + }, + "LocalPath": { + "type": "string" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + } + }, + "required": [ + "DataCapturedDestinationS3Uri", + "DatasetFormat", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.ClusterConfig": { + "additionalProperties": false, + "properties": { + "InstanceCount": { + "type": "number" + }, + "InstanceType": { + "type": "string" + }, + "VolumeKmsKeyId": { + "type": "string" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InstanceCount", + "InstanceType", + "VolumeSizeInGB" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.ConstraintsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.Csv": { + "additionalProperties": false, + "properties": { + "Header": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.DatasetFormat": { + "additionalProperties": false, + "properties": { + "Csv": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.Csv" + }, + "Json": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.Json" + }, + "Parquet": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.EndpointInput": { + "additionalProperties": false, + "properties": { + "EndpointName": { + "type": "string" + }, + "LocalPath": { + "type": "string" + }, + "S3DataDistributionType": { + "type": "string" + }, + "S3InputMode": { + "type": "string" + } + }, + "required": [ + "EndpointName", + "LocalPath" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.Json": { + "additionalProperties": false, + "properties": { + "Line": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringAppSpecification": { + "additionalProperties": false, + "properties": { + "ContainerArguments": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ContainerEntrypoint": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ImageUri": { + "type": "string" + }, + "PostAnalyticsProcessorSourceUri": { + "type": "string" + }, + "RecordPreprocessorSourceUri": { + "type": "string" + } + }, + "required": [ + "ImageUri" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringExecutionSummary": { + "additionalProperties": false, + "properties": { + "CreationTime": { + "type": "string" + }, + "EndpointName": { + "type": "string" + }, + "FailureReason": { + "type": "string" + }, + "LastModifiedTime": { + "type": "string" + }, + "MonitoringExecutionStatus": { + "type": "string" + }, + "MonitoringScheduleName": { + "type": "string" + }, + "ProcessingJobArn": { + "type": "string" + }, + "ScheduledTime": { + "type": "string" + } + }, + "required": [ + "CreationTime", + "LastModifiedTime", + "MonitoringExecutionStatus", + "MonitoringScheduleName", + "ScheduledTime" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringInput": { + "additionalProperties": false, + "properties": { + "BatchTransformInput": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.BatchTransformInput" + }, + "EndpointInput": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.EndpointInput" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringJobDefinition": { + "additionalProperties": false, + "properties": { + "BaselineConfig": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.BaselineConfig" + }, + "Environment": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "MonitoringAppSpecification": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringAppSpecification" + }, + "MonitoringInputs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringInput" + }, + "type": "array" + }, + "MonitoringOutputConfig": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringOutputConfig" + }, + "MonitoringResources": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringResources" + }, + "NetworkConfig": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.NetworkConfig" + }, + "RoleArn": { + "type": "string" + }, + "StoppingCondition": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.StoppingCondition" + } + }, + "required": [ + "MonitoringAppSpecification", + "MonitoringInputs", + "MonitoringOutputConfig", + "MonitoringResources", + "RoleArn" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringOutput": { + "additionalProperties": false, + "properties": { + "S3Output": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.S3Output" + } + }, + "required": [ + "S3Output" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringOutputConfig": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "MonitoringOutputs": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringOutput" + }, + "type": "array" + } + }, + "required": [ + "MonitoringOutputs" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringResources": { + "additionalProperties": false, + "properties": { + "ClusterConfig": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.ClusterConfig" + } + }, + "required": [ + "ClusterConfig" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.MonitoringScheduleConfig": { + "additionalProperties": false, + "properties": { + "MonitoringJobDefinition": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.MonitoringJobDefinition" + }, + "MonitoringJobDefinitionName": { + "type": "string" + }, + "MonitoringType": { + "type": "string" + }, + "ScheduleConfig": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.ScheduleConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.NetworkConfig": { + "additionalProperties": false, + "properties": { + "EnableInterContainerTrafficEncryption": { + "type": "boolean" + }, + "EnableNetworkIsolation": { + "type": "boolean" + }, + "VpcConfig": { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule.VpcConfig" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.S3Output": { + "additionalProperties": false, + "properties": { + "LocalPath": { + "type": "string" + }, + "S3UploadMode": { + "type": "string" + }, + "S3Uri": { + "type": "string" + } + }, + "required": [ + "LocalPath", + "S3Uri" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.ScheduleConfig": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.StatisticsResource": { + "additionalProperties": false, + "properties": { + "S3Uri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.StoppingCondition": { + "additionalProperties": false, + "properties": { + "MaxRuntimeInSeconds": { + "type": "number" + } + }, + "required": [ + "MaxRuntimeInSeconds" + ], + "type": "object" + }, + "AWS::SageMaker::MonitoringSchedule.VpcConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "SecurityGroupIds", + "Subnets" + ], + "type": "object" + }, + "AWS::SageMaker::NotebookInstance": { + "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": { + "AcceleratorTypes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdditionalCodeRepositories": { + "items": { + "type": "string" + }, + "type": "array" + }, + "DefaultCodeRepository": { + "type": "string" + }, + "DirectInternetAccess": { + "type": "string" + }, + "InstanceMetadataServiceConfiguration": { + "$ref": "#/definitions/AWS::SageMaker::NotebookInstance.InstanceMetadataServiceConfiguration" + }, + "InstanceType": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "LifecycleConfigName": { + "type": "string" + }, + "NotebookInstanceName": { + "type": "string" + }, + "PlatformIdentifier": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "RootAccess": { + "type": "string" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VolumeSizeInGB": { + "type": "number" + } + }, + "required": [ + "InstanceType", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::NotebookInstance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::NotebookInstance.InstanceMetadataServiceConfiguration": { + "additionalProperties": false, + "properties": { + "MinimumInstanceMetadataServiceVersion": { + "type": "string" + } + }, + "required": [ + "MinimumInstanceMetadataServiceVersion" + ], + "type": "object" + }, + "AWS::SageMaker::NotebookInstanceLifecycleConfig": { + "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": { + "NotebookInstanceLifecycleConfigName": { + "type": "string" + }, + "OnCreate": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::NotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHook" + }, + "type": "array" + }, + "OnStart": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::NotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHook" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::NotebookInstanceLifecycleConfig" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SageMaker::NotebookInstanceLifecycleConfig.NotebookInstanceLifecycleHook": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Pipeline": { + "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": { + "ParallelismConfiguration": { + "$ref": "#/definitions/AWS::SageMaker::Pipeline.ParallelismConfiguration" + }, + "PipelineDefinition": { + "$ref": "#/definitions/AWS::SageMaker::Pipeline.PipelineDefinition" + }, + "PipelineDescription": { + "type": "string" + }, + "PipelineDisplayName": { + "type": "string" + }, + "PipelineName": { + "type": "string" + }, + "RoleArn": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PipelineDefinition", + "PipelineName", + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Pipeline" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::Pipeline.ParallelismConfiguration": { + "additionalProperties": false, + "properties": { + "MaxParallelExecutionSteps": { + "type": "number" + } + }, + "required": [ + "MaxParallelExecutionSteps" + ], + "type": "object" + }, + "AWS::SageMaker::Pipeline.PipelineDefinition": { + "additionalProperties": false, + "properties": { + "PipelineDefinitionBody": { + "type": "string" + }, + "PipelineDefinitionS3Location": { + "$ref": "#/definitions/AWS::SageMaker::Pipeline.S3Location" + } + }, + "type": "object" + }, + "AWS::SageMaker::Pipeline.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "ETag": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::SageMaker::Project": { + "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": { + "ProjectDescription": { + "type": "string" + }, + "ProjectName": { + "type": "string" + }, + "ServiceCatalogProvisioningDetails": { + "$ref": "#/definitions/AWS::SageMaker::Project.ServiceCatalogProvisioningDetails" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ProjectName", + "ServiceCatalogProvisioningDetails" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Project" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::Project.ProvisioningParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::SageMaker::Project.ServiceCatalogProvisionedProductDetails": { + "additionalProperties": false, + "properties": { + "ProvisionedProductId": { + "type": "string" + }, + "ProvisionedProductStatusMessage": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::Project.ServiceCatalogProvisioningDetails": { + "additionalProperties": false, + "properties": { + "PathId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "ProvisioningArtifactId": { + "type": "string" + }, + "ProvisioningParameters": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Project.ProvisioningParameter" + }, + "type": "array" + } + }, + "required": [ + "ProductId" + ], + "type": "object" + }, + "AWS::SageMaker::UserProfile": { + "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": { + "DomainId": { + "type": "string" + }, + "SingleSignOnUserIdentifier": { + "type": "string" + }, + "SingleSignOnUserValue": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserProfileName": { + "type": "string" + }, + "UserSettings": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.UserSettings" + } + }, + "required": [ + "DomainId", + "UserProfileName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::UserProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SageMaker::UserProfile.CustomImage": { + "additionalProperties": false, + "properties": { + "AppImageConfigName": { + "type": "string" + }, + "ImageName": { + "type": "string" + }, + "ImageVersionNumber": { + "type": "number" + } + }, + "required": [ + "AppImageConfigName", + "ImageName" + ], + "type": "object" + }, + "AWS::SageMaker::UserProfile.JupyterServerAppSettings": { + "additionalProperties": false, + "properties": { + "DefaultResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.ResourceSpec" + } + }, + "type": "object" + }, + "AWS::SageMaker::UserProfile.KernelGatewayAppSettings": { + "additionalProperties": false, + "properties": { + "CustomImages": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.CustomImage" + }, + "type": "array" + }, + "DefaultResourceSpec": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.ResourceSpec" + } + }, + "type": "object" + }, + "AWS::SageMaker::UserProfile.RStudioServerProAppSettings": { + "additionalProperties": false, + "properties": { + "AccessStatus": { + "type": "string" + }, + "UserGroup": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::UserProfile.ResourceSpec": { + "additionalProperties": false, + "properties": { + "InstanceType": { + "type": "string" + }, + "SageMakerImageArn": { + "type": "string" + }, + "SageMakerImageVersionArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::UserProfile.SharingSettings": { + "additionalProperties": false, + "properties": { + "NotebookOutputOption": { + "type": "string" + }, + "S3KmsKeyId": { + "type": "string" + }, + "S3OutputPath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SageMaker::UserProfile.UserSettings": { + "additionalProperties": false, + "properties": { + "ExecutionRole": { + "type": "string" + }, + "JupyterServerAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.JupyterServerAppSettings" + }, + "KernelGatewayAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.KernelGatewayAppSettings" + }, + "RStudioServerProAppSettings": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.RStudioServerProAppSettings" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SharingSettings": { + "$ref": "#/definitions/AWS::SageMaker::UserProfile.SharingSettings" + } + }, + "type": "object" + }, + "AWS::SageMaker::Workteam": { + "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": { + "Description": { + "type": "string" + }, + "MemberDefinitions": { + "items": { + "$ref": "#/definitions/AWS::SageMaker::Workteam.MemberDefinition" + }, + "type": "array" + }, + "NotificationConfiguration": { + "$ref": "#/definitions/AWS::SageMaker::Workteam.NotificationConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkforceName": { + "type": "string" + }, + "WorkteamName": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SageMaker::Workteam" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SageMaker::Workteam.CognitoMemberDefinition": { + "additionalProperties": false, + "properties": { + "CognitoClientId": { + "type": "string" + }, + "CognitoUserGroup": { + "type": "string" + }, + "CognitoUserPool": { + "type": "string" + } + }, + "required": [ + "CognitoClientId", + "CognitoUserGroup", + "CognitoUserPool" + ], + "type": "object" + }, + "AWS::SageMaker::Workteam.MemberDefinition": { + "additionalProperties": false, + "properties": { + "CognitoMemberDefinition": { + "$ref": "#/definitions/AWS::SageMaker::Workteam.CognitoMemberDefinition" + }, + "OidcMemberDefinition": { + "$ref": "#/definitions/AWS::SageMaker::Workteam.OidcMemberDefinition" + } + }, + "type": "object" + }, + "AWS::SageMaker::Workteam.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "NotificationTopicArn": { + "type": "string" + } + }, + "required": [ + "NotificationTopicArn" + ], + "type": "object" + }, + "AWS::SageMaker::Workteam.OidcMemberDefinition": { + "additionalProperties": false, + "properties": { + "OidcGroups": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "OidcGroups" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule": { + "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": { + "Description": { + "type": "string" + }, + "EndDate": { + "type": "string" + }, + "FlexibleTimeWindow": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.FlexibleTimeWindow" + }, + "GroupName": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + }, + "ScheduleExpressionTimezone": { + "type": "string" + }, + "StartDate": { + "type": "string" + }, + "State": { + "type": "string" + }, + "Target": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.Target" + } + }, + "required": [ + "FlexibleTimeWindow", + "ScheduleExpression", + "Target" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Scheduler::Schedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.AwsVpcConfiguration": { + "additionalProperties": false, + "properties": { + "AssignPublicIp": { + "type": "string" + }, + "SecurityGroups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Subnets": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Subnets" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.CapacityProviderStrategyItem": { + "additionalProperties": false, + "properties": { + "Base": { + "type": "number" + }, + "CapacityProvider": { + "type": "string" + }, + "Weight": { + "type": "number" + } + }, + "required": [ + "CapacityProvider" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Scheduler::Schedule.EcsParameters": { + "additionalProperties": false, + "properties": { + "CapacityProviderStrategy": { + "items": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.CapacityProviderStrategyItem" + }, + "type": "array" + }, + "EnableECSManagedTags": { + "type": "boolean" + }, + "EnableExecuteCommand": { + "type": "boolean" + }, + "Group": { + "type": "string" + }, + "LaunchType": { + "type": "string" + }, + "NetworkConfiguration": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.NetworkConfiguration" + }, + "PlacementConstraints": { + "items": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.PlacementConstraint" + }, + "type": "array" + }, + "PlacementStrategy": { + "items": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.PlacementStrategy" + }, + "type": "array" + }, + "PlatformVersion": { + "type": "string" + }, + "PropagateTags": { + "type": "string" + }, + "ReferenceId": { + "type": "string" + }, + "Tags": { + "type": "object" + }, + "TaskCount": { + "type": "number" + }, + "TaskDefinitionArn": { + "type": "string" + } + }, + "required": [ + "TaskDefinitionArn" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.EventBridgeParameters": { + "additionalProperties": false, + "properties": { + "DetailType": { + "type": "string" + }, + "Source": { + "type": "string" + } + }, + "required": [ + "DetailType", + "Source" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.FlexibleTimeWindow": { + "additionalProperties": false, + "properties": { + "MaximumWindowInMinutes": { + "type": "number" + }, + "Mode": { + "type": "string" + } + }, + "required": [ + "Mode" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.KinesisParameters": { + "additionalProperties": false, + "properties": { + "PartitionKey": { + "type": "string" + } + }, + "required": [ + "PartitionKey" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.NetworkConfiguration": { + "additionalProperties": false, + "properties": { + "AwsvpcConfiguration": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.AwsVpcConfiguration" + } + }, + "type": "object" + }, + "AWS::Scheduler::Schedule.PlacementConstraint": { + "additionalProperties": false, + "properties": { + "Expression": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Scheduler::Schedule.PlacementStrategy": { + "additionalProperties": false, + "properties": { + "Field": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Scheduler::Schedule.RetryPolicy": { + "additionalProperties": false, + "properties": { + "MaximumEventAgeInSeconds": { + "type": "number" + }, + "MaximumRetryAttempts": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Scheduler::Schedule.SageMakerPipelineParameter": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::Scheduler::Schedule.SageMakerPipelineParameters": { + "additionalProperties": false, + "properties": { + "PipelineParameterList": { + "items": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.SageMakerPipelineParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Scheduler::Schedule.SqsParameters": { + "additionalProperties": false, + "properties": { + "MessageGroupId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Scheduler::Schedule.Target": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "DeadLetterConfig": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.DeadLetterConfig" + }, + "EcsParameters": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.EcsParameters" + }, + "EventBridgeParameters": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.EventBridgeParameters" + }, + "Input": { + "type": "string" + }, + "KinesisParameters": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.KinesisParameters" + }, + "RetryPolicy": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.RetryPolicy" + }, + "RoleArn": { + "type": "string" + }, + "SageMakerPipelineParameters": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.SageMakerPipelineParameters" + }, + "SqsParameters": { + "$ref": "#/definitions/AWS::Scheduler::Schedule.SqsParameters" + } + }, + "required": [ + "Arn", + "RoleArn" + ], + "type": "object" + }, + "AWS::Scheduler::ScheduleGroup": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Scheduler::ScheduleGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SecretsManager::ResourcePolicy": { + "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": { + "BlockPublicPolicy": { + "type": "boolean" + }, + "ResourcePolicy": { + "type": "object" + }, + "SecretId": { + "type": "string" + } + }, + "required": [ + "ResourcePolicy", + "SecretId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SecretsManager::ResourcePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SecretsManager::RotationSchedule": { + "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": { + "HostedRotationLambda": { + "$ref": "#/definitions/AWS::SecretsManager::RotationSchedule.HostedRotationLambda" + }, + "RotateImmediatelyOnUpdate": { + "type": "boolean" + }, + "RotationLambdaARN": { + "type": "string" + }, + "RotationRules": { + "$ref": "#/definitions/AWS::SecretsManager::RotationSchedule.RotationRules" + }, + "SecretId": { + "type": "string" + } + }, + "required": [ + "SecretId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SecretsManager::RotationSchedule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SecretsManager::RotationSchedule.HostedRotationLambda": { + "additionalProperties": false, + "properties": { + "ExcludeCharacters": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + }, + "MasterSecretArn": { + "type": "string" + }, + "MasterSecretKmsKeyArn": { + "type": "string" + }, + "RotationLambdaName": { + "type": "string" + }, + "RotationType": { + "type": "string" + }, + "SuperuserSecretArn": { + "type": "string" + }, + "SuperuserSecretKmsKeyArn": { + "type": "string" + }, + "VpcSecurityGroupIds": { + "type": "string" + }, + "VpcSubnetIds": { + "type": "string" + } + }, + "required": [ + "RotationType" + ], + "type": "object" + }, + "AWS::SecretsManager::RotationSchedule.RotationRules": { + "additionalProperties": false, + "properties": { + "AutomaticallyAfterDays": { + "type": "number" + }, + "Duration": { + "type": "string" + }, + "ScheduleExpression": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SecretsManager::Secret": { + "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": { + "Description": { + "type": "string" + }, + "GenerateSecretString": { + "$ref": "#/definitions/AWS::SecretsManager::Secret.GenerateSecretString" + }, + "KmsKeyId": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ReplicaRegions": { + "items": { + "$ref": "#/definitions/AWS::SecretsManager::Secret.ReplicaRegion" + }, + "type": "array" + }, + "SecretString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SecretsManager::Secret" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::SecretsManager::Secret.GenerateSecretString": { + "additionalProperties": false, + "properties": { + "ExcludeCharacters": { + "type": "string" + }, + "ExcludeLowercase": { + "type": "boolean" + }, + "ExcludeNumbers": { + "type": "boolean" + }, + "ExcludePunctuation": { + "type": "boolean" + }, + "ExcludeUppercase": { + "type": "boolean" + }, + "GenerateStringKey": { + "type": "string" + }, + "IncludeSpace": { + "type": "boolean" + }, + "PasswordLength": { + "type": "number" + }, + "RequireEachIncludedType": { + "type": "boolean" + }, + "SecretStringTemplate": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::SecretsManager::Secret.ReplicaRegion": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + }, + "Region": { + "type": "string" + } + }, + "required": [ + "Region" + ], + "type": "object" + }, + "AWS::SecretsManager::SecretTargetAttachment": { + "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": { + "SecretId": { + "type": "string" + }, + "TargetId": { + "type": "string" + }, + "TargetType": { + "type": "string" + } + }, + "required": [ + "SecretId", + "TargetId", + "TargetType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SecretsManager::SecretTargetAttachment" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SecurityHub::Hub": { + "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": { + "Tags": { + "type": "object" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SecurityHub::Hub" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceCatalog::AcceptedPortfolioShare": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + } + }, + "required": [ + "PortfolioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::AcceptedPortfolioShare" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProduct": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Distributor": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Owner": { + "type": "string" + }, + "ProvisioningArtifactParameters": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties" + }, + "type": "array" + }, + "ReplaceProvisioningArtifacts": { + "type": "boolean" + }, + "SupportDescription": { + "type": "string" + }, + "SupportEmail": { + "type": "string" + }, + "SupportUrl": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "Owner", + "ProvisioningArtifactParameters" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::CloudFormationProduct" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProduct.ProvisioningArtifactProperties": { + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" + }, + "DisableTemplateValidation": { + "type": "boolean" + }, + "Info": { + "type": "object" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Info" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PathId": { + "type": "string" + }, + "PathName": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "ProductName": { + "type": "string" + }, + "ProvisionedProductName": { + "type": "string" + }, + "ProvisioningArtifactId": { + "type": "string" + }, + "ProvisioningArtifactName": { + "type": "string" + }, + "ProvisioningParameters": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter" + }, + "type": "array" + }, + "ProvisioningPreferences": { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::ServiceCatalog::CloudFormationProvisionedProduct.ProvisioningPreferences": { + "additionalProperties": false, + "properties": { + "StackSetAccounts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StackSetFailureToleranceCount": { + "type": "number" + }, + "StackSetFailureTolerancePercentage": { + "type": "number" + }, + "StackSetMaxConcurrencyCount": { + "type": "number" + }, + "StackSetMaxConcurrencyPercentage": { + "type": "number" + }, + "StackSetOperationType": { + "type": "string" + }, + "StackSetRegions": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::ServiceCatalog::LaunchNotificationConstraint": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "NotificationArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + } + }, + "required": [ + "NotificationArns", + "PortfolioId", + "ProductId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::LaunchNotificationConstraint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::LaunchRoleConstraint": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "LocalRoleName": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "RoleArn": { + "type": "string" + } + }, + "required": [ + "PortfolioId", + "ProductId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::LaunchRoleConstraint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::LaunchTemplateConstraint": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "Rules": { + "type": "string" + } + }, + "required": [ + "PortfolioId", + "ProductId", + "Rules" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::LaunchTemplateConstraint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::Portfolio": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "ProviderName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DisplayName", + "ProviderName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::Portfolio" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::PortfolioPrincipalAssociation": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "PrincipalARN": { + "type": "string" + }, + "PrincipalType": { + "type": "string" + } + }, + "required": [ + "PortfolioId", + "PrincipalARN", + "PrincipalType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::PortfolioPrincipalAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::PortfolioProductAssociation": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "SourcePortfolioId": { + "type": "string" + } + }, + "required": [ + "PortfolioId", + "ProductId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::PortfolioProductAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::PortfolioShare": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "AccountId": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ShareTagOptions": { + "type": "boolean" + } + }, + "required": [ + "AccountId", + "PortfolioId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::PortfolioShare" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::ResourceUpdateConstraint": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "TagUpdateOnProvisionedProduct": { + "type": "string" + } + }, + "required": [ + "PortfolioId", + "ProductId", + "TagUpdateOnProvisionedProduct" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::ResourceUpdateConstraint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::ServiceAction": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "Definition": { + "items": { + "$ref": "#/definitions/AWS::ServiceCatalog::ServiceAction.DefinitionParameter" + }, + "type": "array" + }, + "DefinitionType": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Definition", + "DefinitionType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::ServiceAction" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::ServiceAction.DefinitionParameter": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::ServiceCatalog::ServiceActionAssociation": { + "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": { + "ProductId": { + "type": "string" + }, + "ProvisioningArtifactId": { + "type": "string" + }, + "ServiceActionId": { + "type": "string" + } + }, + "required": [ + "ProductId", + "ProvisioningArtifactId", + "ServiceActionId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::ServiceActionAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::StackSetConstraint": { + "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": { + "AcceptLanguage": { + "type": "string" + }, + "AccountList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "AdminRole": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "ExecutionRole": { + "type": "string" + }, + "PortfolioId": { + "type": "string" + }, + "ProductId": { + "type": "string" + }, + "RegionList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "StackInstanceControl": { + "type": "string" + } + }, + "required": [ + "AccountList", + "AdminRole", + "Description", + "ExecutionRole", + "PortfolioId", + "ProductId", + "RegionList", + "StackInstanceControl" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::StackSetConstraint" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::TagOption": { + "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": { + "Active": { + "type": "boolean" + }, + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::TagOption" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalog::TagOptionAssociation": { + "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": { + "ResourceId": { + "type": "string" + }, + "TagOptionId": { + "type": "string" + } + }, + "required": [ + "ResourceId", + "TagOptionId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalog::TagOptionAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalogAppRegistry::Application": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalogAppRegistry::Application" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalogAppRegistry::AttributeGroup": { + "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": { + "Attributes": { + "type": "object" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + } + }, + "required": [ + "Attributes", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalogAppRegistry::AttributeGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation": { + "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": { + "Application": { + "type": "string" + }, + "AttributeGroup": { + "type": "string" + } + }, + "required": [ + "Application", + "AttributeGroup" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceCatalogAppRegistry::ResourceAssociation": { + "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": { + "Application": { + "type": "string" + }, + "Resource": { + "type": "string" + }, + "ResourceType": { + "type": "string" + } + }, + "required": [ + "Application", + "Resource", + "ResourceType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::HttpNamespace": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::HttpNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Instance": { + "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": { + "InstanceAttributes": { + "type": "object" + }, + "InstanceId": { + "type": "string" + }, + "ServiceId": { + "type": "string" + } + }, + "required": [ + "InstanceAttributes", + "ServiceId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::Instance" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.Properties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Vpc": { + "type": "string" + } + }, + "required": [ + "Name", + "Vpc" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::PrivateDnsNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable": { + "additionalProperties": false, + "properties": { + "SOA": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.SOA" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace.Properties": { + "additionalProperties": false, + "properties": { + "DnsProperties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace.PrivateDnsPropertiesMutable" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PrivateDnsNamespace.SOA": { + "additionalProperties": false, + "properties": { + "TTL": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Properties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.Properties" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::PublicDnsNamespace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace.Properties": { + "additionalProperties": false, + "properties": { + "DnsProperties": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.PublicDnsPropertiesMutable" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace.PublicDnsPropertiesMutable": { + "additionalProperties": false, + "properties": { + "SOA": { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace.SOA" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::PublicDnsNamespace.SOA": { + "additionalProperties": false, + "properties": { + "TTL": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::ServiceDiscovery::Service": { + "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": { + "Description": { + "type": "string" + }, + "DnsConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsConfig" + }, + "HealthCheckConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckConfig" + }, + "HealthCheckCustomConfig": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.HealthCheckCustomConfig" + }, + "Name": { + "type": "string" + }, + "NamespaceId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::ServiceDiscovery::Service" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.DnsConfig": { + "additionalProperties": false, + "properties": { + "DnsRecords": { + "items": { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service.DnsRecord" + }, + "type": "array" + }, + "NamespaceId": { + "type": "string" + }, + "RoutingPolicy": { + "type": "string" + } + }, + "required": [ + "DnsRecords" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.DnsRecord": { + "additionalProperties": false, + "properties": { + "TTL": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "TTL", + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + }, + "ResourcePath": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::ServiceDiscovery::Service.HealthCheckCustomConfig": { + "additionalProperties": false, + "properties": { + "FailureThreshold": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Signer::ProfilePermission": { + "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": { + "Action": { + "type": "string" + }, + "Principal": { + "type": "string" + }, + "ProfileName": { + "type": "string" + }, + "ProfileVersion": { + "type": "string" + }, + "StatementId": { + "type": "string" + } + }, + "required": [ + "Action", + "Principal", + "ProfileName", + "StatementId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Signer::ProfilePermission" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Signer::SigningProfile": { + "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": { + "PlatformId": { + "type": "string" + }, + "SignatureValidityPeriod": { + "$ref": "#/definitions/AWS::Signer::SigningProfile.SignatureValidityPeriod" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "PlatformId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Signer::SigningProfile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Signer::SigningProfile.SignatureValidityPeriod": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::StepFunctions::Activity": { + "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": { + "Name": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::Activity.TagsEntry" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::StepFunctions::Activity" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::StepFunctions::Activity.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::StepFunctions::StateMachine": { + "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": { + "Definition": { + "type": "object" + }, + "DefinitionS3Location": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.S3Location" + }, + "DefinitionString": { + "type": "string" + }, + "DefinitionSubstitutions": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "object" + } + }, + "type": "object" + }, + "LoggingConfiguration": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LoggingConfiguration" + }, + "RoleArn": { + "type": "string" + }, + "StateMachineName": { + "type": "string" + }, + "StateMachineType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TagsEntry" + }, + "type": "array" + }, + "TracingConfiguration": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.TracingConfiguration" + } + }, + "required": [ + "RoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::StepFunctions::StateMachine" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::StepFunctions::StateMachine.CloudWatchLogsLogGroup": { + "additionalProperties": false, + "properties": { + "LogGroupArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::StepFunctions::StateMachine.LogDestination": { + "additionalProperties": false, + "properties": { + "CloudWatchLogsLogGroup": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.CloudWatchLogsLogGroup" + } + }, + "type": "object" + }, + "AWS::StepFunctions::StateMachine.LoggingConfiguration": { + "additionalProperties": false, + "properties": { + "Destinations": { + "items": { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine.LogDestination" + }, + "type": "array" + }, + "IncludeExecutionData": { + "type": "boolean" + }, + "Level": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::StepFunctions::StateMachine.S3Location": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "type": "object" + }, + "AWS::StepFunctions::StateMachine.TagsEntry": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::StepFunctions::StateMachine.TracingConfiguration": { + "additionalProperties": false, + "properties": { + "Enabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::SupportApp::AccountAlias": { + "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": { + "AccountAlias": { + "type": "string" + } + }, + "required": [ + "AccountAlias" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::AccountAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackChannelConfiguration": { + "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": { + "ChannelId": { + "type": "string" + }, + "ChannelName": { + "type": "string" + }, + "ChannelRoleArn": { + "type": "string" + }, + "NotifyOnAddCorrespondenceToCase": { + "type": "boolean" + }, + "NotifyOnCaseSeverity": { + "type": "string" + }, + "NotifyOnCreateOrReopenCase": { + "type": "boolean" + }, + "NotifyOnResolveCase": { + "type": "boolean" + }, + "TeamId": { + "type": "string" + } + }, + "required": [ + "ChannelId", + "ChannelRoleArn", + "NotifyOnCaseSeverity", + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackChannelConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::SupportApp::SlackWorkspaceConfiguration": { + "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": { + "TeamId": { + "type": "string" + }, + "VersionId": { + "type": "string" + } + }, + "required": [ + "TeamId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::SupportApp::SlackWorkspaceConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Synthetics::Canary": { + "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": { + "ArtifactConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.ArtifactConfig" + }, + "ArtifactS3Location": { + "type": "string" + }, + "Code": { + "$ref": "#/definitions/AWS::Synthetics::Canary.Code" + }, + "DeleteLambdaResourcesOnCanaryDeletion": { + "type": "boolean" + }, + "ExecutionRoleArn": { + "type": "string" + }, + "FailureRetentionPeriod": { + "type": "number" + }, + "Name": { + "type": "string" + }, + "RunConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.RunConfig" + }, + "RuntimeVersion": { + "type": "string" + }, + "Schedule": { + "$ref": "#/definitions/AWS::Synthetics::Canary.Schedule" + }, + "StartCanaryAfterCreation": { + "type": "boolean" + }, + "SuccessRetentionPeriod": { + "type": "number" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VPCConfig": { + "$ref": "#/definitions/AWS::Synthetics::Canary.VPCConfig" + }, + "VisualReference": { + "$ref": "#/definitions/AWS::Synthetics::Canary.VisualReference" + } + }, + "required": [ + "ArtifactS3Location", + "Code", + "ExecutionRoleArn", + "Name", + "RuntimeVersion", + "Schedule", + "StartCanaryAfterCreation" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Synthetics::Canary" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.ArtifactConfig": { + "additionalProperties": false, + "properties": { + "S3Encryption": { + "$ref": "#/definitions/AWS::Synthetics::Canary.S3Encryption" + } + }, + "type": "object" + }, + "AWS::Synthetics::Canary.BaseScreenshot": { + "additionalProperties": false, + "properties": { + "IgnoreCoordinates": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ScreenshotName": { + "type": "string" + } + }, + "required": [ + "ScreenshotName" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.Code": { + "additionalProperties": false, + "properties": { + "Handler": { + "type": "string" + }, + "S3Bucket": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + }, + "Script": { + "type": "string" + } + }, + "required": [ + "Handler" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.RunConfig": { + "additionalProperties": false, + "properties": { + "ActiveTracing": { + "type": "boolean" + }, + "EnvironmentVariables": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "MemoryInMB": { + "type": "number" + }, + "TimeoutInSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Synthetics::Canary.S3Encryption": { + "additionalProperties": false, + "properties": { + "EncryptionMode": { + "type": "string" + }, + "KmsKeyArn": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Synthetics::Canary.Schedule": { + "additionalProperties": false, + "properties": { + "DurationInSeconds": { + "type": "string" + }, + "Expression": { + "type": "string" + } + }, + "required": [ + "Expression" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.VPCConfig": { + "additionalProperties": false, + "properties": { + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcId": { + "type": "string" + } + }, + "required": [ + "SecurityGroupIds", + "SubnetIds" + ], + "type": "object" + }, + "AWS::Synthetics::Canary.VisualReference": { + "additionalProperties": false, + "properties": { + "BaseCanaryRunId": { + "type": "string" + }, + "BaseScreenshots": { + "items": { + "$ref": "#/definitions/AWS::Synthetics::Canary.BaseScreenshot" + }, + "type": "array" + } + }, + "required": [ + "BaseCanaryRunId" + ], + "type": "object" + }, + "AWS::Synthetics::Group": { + "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": { + "Name": { + "type": "string" + }, + "ResourceArns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Synthetics::Group" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Timestream::Database": { + "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": { + "DatabaseName": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Timestream::Database" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery": { + "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": { + "ClientToken": { + "type": "string" + }, + "ErrorReportConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ErrorReportConfiguration" + }, + "KmsKeyId": { + "type": "string" + }, + "NotificationConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.NotificationConfiguration" + }, + "QueryString": { + "type": "string" + }, + "ScheduleConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.ScheduleConfiguration" + }, + "ScheduledQueryExecutionRoleArn": { + "type": "string" + }, + "ScheduledQueryName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TargetConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TargetConfiguration" + } + }, + "required": [ + "ErrorReportConfiguration", + "NotificationConfiguration", + "QueryString", + "ScheduleConfiguration", + "ScheduledQueryExecutionRoleArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Timestream::ScheduledQuery" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.DimensionMapping": { + "additionalProperties": false, + "properties": { + "DimensionValueType": { + "type": "string" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "DimensionValueType", + "Name" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.ErrorReportConfiguration": { + "additionalProperties": false, + "properties": { + "S3Configuration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.S3Configuration" + } + }, + "required": [ + "S3Configuration" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.MixedMeasureMapping": { + "additionalProperties": false, + "properties": { + "MeasureName": { + "type": "string" + }, + "MeasureValueType": { + "type": "string" + }, + "MultiMeasureAttributeMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping" + }, + "type": "array" + }, + "SourceColumn": { + "type": "string" + }, + "TargetMeasureName": { + "type": "string" + } + }, + "required": [ + "MeasureValueType" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping": { + "additionalProperties": false, + "properties": { + "MeasureValueType": { + "type": "string" + }, + "SourceColumn": { + "type": "string" + }, + "TargetMultiMeasureAttributeName": { + "type": "string" + } + }, + "required": [ + "MeasureValueType", + "SourceColumn" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.MultiMeasureMappings": { + "additionalProperties": false, + "properties": { + "MultiMeasureAttributeMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureAttributeMapping" + }, + "type": "array" + }, + "TargetMultiMeasureName": { + "type": "string" + } + }, + "required": [ + "MultiMeasureAttributeMappings" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.NotificationConfiguration": { + "additionalProperties": false, + "properties": { + "SnsConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.SnsConfiguration" + } + }, + "required": [ + "SnsConfiguration" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.S3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "EncryptionOption": { + "type": "string" + }, + "ObjectKeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.ScheduleConfiguration": { + "additionalProperties": false, + "properties": { + "ScheduleExpression": { + "type": "string" + } + }, + "required": [ + "ScheduleExpression" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.SnsConfiguration": { + "additionalProperties": false, + "properties": { + "TopicArn": { + "type": "string" + } + }, + "required": [ + "TopicArn" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.TargetConfiguration": { + "additionalProperties": false, + "properties": { + "TimestreamConfiguration": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.TimestreamConfiguration" + } + }, + "required": [ + "TimestreamConfiguration" + ], + "type": "object" + }, + "AWS::Timestream::ScheduledQuery.TimestreamConfiguration": { + "additionalProperties": false, + "properties": { + "DatabaseName": { + "type": "string" + }, + "DimensionMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.DimensionMapping" + }, + "type": "array" + }, + "MeasureNameColumn": { + "type": "string" + }, + "MixedMeasureMappings": { + "items": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MixedMeasureMapping" + }, + "type": "array" + }, + "MultiMeasureMappings": { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery.MultiMeasureMappings" + }, + "TableName": { + "type": "string" + }, + "TimeColumn": { + "type": "string" + } + }, + "required": [ + "DatabaseName", + "DimensionMappings", + "TableName", + "TimeColumn" + ], + "type": "object" + }, + "AWS::Timestream::Table": { + "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": { + "DatabaseName": { + "type": "string" + }, + "MagneticStoreWriteProperties": { + "$ref": "#/definitions/AWS::Timestream::Table.MagneticStoreWriteProperties" + }, + "RetentionProperties": { + "$ref": "#/definitions/AWS::Timestream::Table.RetentionProperties" + }, + "TableName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "DatabaseName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Timestream::Table" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Timestream::Table.MagneticStoreRejectedDataLocation": { + "additionalProperties": false, + "properties": { + "S3Configuration": { + "$ref": "#/definitions/AWS::Timestream::Table.S3Configuration" + } + }, + "type": "object" + }, + "AWS::Timestream::Table.MagneticStoreWriteProperties": { + "additionalProperties": false, + "properties": { + "EnableMagneticStoreWrites": { + "type": "boolean" + }, + "MagneticStoreRejectedDataLocation": { + "$ref": "#/definitions/AWS::Timestream::Table.MagneticStoreRejectedDataLocation" + } + }, + "required": [ + "EnableMagneticStoreWrites" + ], + "type": "object" + }, + "AWS::Timestream::Table.RetentionProperties": { + "additionalProperties": false, + "properties": { + "MagneticStoreRetentionPeriodInDays": { + "type": "string" + }, + "MemoryStoreRetentionPeriodInHours": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Timestream::Table.S3Configuration": { + "additionalProperties": false, + "properties": { + "BucketName": { + "type": "string" + }, + "EncryptionOption": { + "type": "string" + }, + "KmsKeyId": { + "type": "string" + }, + "ObjectKeyPrefix": { + "type": "string" + } + }, + "required": [ + "BucketName", + "EncryptionOption" + ], + "type": "object" + }, + "AWS::Transfer::Agreement": { + "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": { + "AccessRole": { + "type": "string" + }, + "BaseDirectory": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "LocalProfileId": { + "type": "string" + }, + "PartnerProfileId": { + "type": "string" + }, + "ServerId": { + "type": "string" + }, + "Status": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AccessRole", + "BaseDirectory", + "LocalProfileId", + "PartnerProfileId", + "ServerId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Transfer::Agreement" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Transfer::Certificate": { + "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": { + "ActiveDate": { + "type": "string" + }, + "Certificate": { + "type": "string" + }, + "CertificateChain": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "InactiveDate": { + "type": "string" + }, + "PrivateKey": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Usage": { + "type": "string" + } + }, + "required": [ + "Certificate", + "Usage" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Transfer::Certificate" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Transfer::Connector": { + "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": { + "AccessRole": { + "type": "string" + }, + "As2Config": { + "$ref": "#/definitions/AWS::Transfer::Connector.As2Config" + }, + "LoggingRole": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Url": { + "type": "string" + } + }, + "required": [ + "AccessRole", + "As2Config", + "Url" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Transfer::Connector" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Transfer::Connector.As2Config": { + "additionalProperties": false, + "properties": { + "Compression": { + "type": "string" + }, + "EncryptionAlgorithm": { + "type": "string" + }, + "LocalProfileId": { + "type": "string" + }, + "MdnResponse": { + "type": "string" + }, + "MdnSigningAlgorithm": { + "type": "string" + }, + "MessageSubject": { + "type": "string" + }, + "PartnerProfileId": { + "type": "string" + }, + "SigningAlgorithm": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Profile": { + "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": { + "As2Id": { + "type": "string" + }, + "CertificateIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ProfileType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "As2Id", + "ProfileType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Transfer::Profile" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Transfer::Server": { + "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": { + "Certificate": { + "type": "string" + }, + "Domain": { + "type": "string" + }, + "EndpointDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.EndpointDetails" + }, + "EndpointType": { + "type": "string" + }, + "IdentityProviderDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.IdentityProviderDetails" + }, + "IdentityProviderType": { + "type": "string" + }, + "LoggingRole": { + "type": "string" + }, + "PostAuthenticationLoginBanner": { + "type": "string" + }, + "PreAuthenticationLoginBanner": { + "type": "string" + }, + "ProtocolDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.ProtocolDetails" + }, + "Protocols": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.Protocol" + }, + "type": "array" + }, + "SecurityPolicyName": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "WorkflowDetails": { + "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetails" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Transfer::Server" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::Transfer::Server.As2Transport": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::Transfer::Server.EndpointDetails": { + "additionalProperties": false, + "properties": { + "AddressAllocationIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SecurityGroupIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "SubnetIds": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VpcEndpointId": { + "type": "string" + }, + "VpcId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Server.IdentityProviderDetails": { + "additionalProperties": false, + "properties": { + "DirectoryId": { + "type": "string" + }, + "Function": { + "type": "string" + }, + "InvocationRole": { + "type": "string" + }, + "Url": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Server.Protocol": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::Transfer::Server.ProtocolDetails": { + "additionalProperties": false, + "properties": { + "As2Transports": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.As2Transport" + }, + "type": "array" + }, + "PassiveIp": { + "type": "string" + }, + "SetStatOption": { + "type": "string" + }, + "TlsSessionResumptionMode": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Server.WorkflowDetail": { + "additionalProperties": false, + "properties": { + "ExecutionRole": { + "type": "string" + }, + "WorkflowId": { + "type": "string" + } + }, + "required": [ + "ExecutionRole", + "WorkflowId" + ], + "type": "object" + }, + "AWS::Transfer::Server.WorkflowDetails": { + "additionalProperties": false, + "properties": { + "OnPartialUpload": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetail" + }, + "type": "array" + }, + "OnUpload": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Server.WorkflowDetail" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Transfer::User": { + "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": { + "HomeDirectory": { + "type": "string" + }, + "HomeDirectoryMappings": { + "items": { + "$ref": "#/definitions/AWS::Transfer::User.HomeDirectoryMapEntry" + }, + "type": "array" + }, + "HomeDirectoryType": { + "type": "string" + }, + "Policy": { + "type": "string" + }, + "PosixProfile": { + "$ref": "#/definitions/AWS::Transfer::User.PosixProfile" + }, + "Role": { + "type": "string" + }, + "ServerId": { + "type": "string" + }, + "SshPublicKeys": { + "items": { + "$ref": "#/definitions/AWS::Transfer::User.SshPublicKey" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + } + }, + "required": [ + "Role", + "ServerId", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Transfer::User" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Transfer::User.HomeDirectoryMapEntry": { + "additionalProperties": false, + "properties": { + "Entry": { + "type": "string" + }, + "Target": { + "type": "string" + } + }, + "required": [ + "Entry", + "Target" + ], + "type": "object" + }, + "AWS::Transfer::User.PosixProfile": { + "additionalProperties": false, + "properties": { + "Gid": { + "type": "number" + }, + "SecondaryGids": { + "items": { + "type": "number" + }, + "type": "array" + }, + "Uid": { + "type": "number" + } + }, + "required": [ + "Gid", + "Uid" + ], + "type": "object" + }, + "AWS::Transfer::User.SshPublicKey": { + "additionalProperties": false, + "properties": {}, + "type": "object" + }, + "AWS::Transfer::Workflow": { + "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": { + "Description": { + "type": "string" + }, + "OnExceptionSteps": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep" + }, + "type": "array" + }, + "Steps": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Workflow.WorkflowStep" + }, + "type": "array" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Steps" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Transfer::Workflow" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Transfer::Workflow.CopyStepDetails": { + "additionalProperties": false, + "properties": { + "DestinationFileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.InputFileLocation" + }, + "Name": { + "type": "string" + }, + "OverwriteExisting": { + "type": "string" + }, + "SourceFileLocation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.CustomStepDetails": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SourceFileLocation": { + "type": "string" + }, + "Target": { + "type": "string" + }, + "TimeoutSeconds": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.DeleteStepDetails": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SourceFileLocation": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.InputFileLocation": { + "additionalProperties": false, + "properties": { + "S3FileLocation": { + "$ref": "#/definitions/AWS::Transfer::Workflow.S3InputFileLocation" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.S3InputFileLocation": { + "additionalProperties": false, + "properties": { + "Bucket": { + "type": "string" + }, + "Key": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.S3Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::Transfer::Workflow.TagStepDetails": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "SourceFileLocation": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::Transfer::Workflow.S3Tag" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::Transfer::Workflow.WorkflowStep": { + "additionalProperties": false, + "properties": { + "CopyStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.CopyStepDetails" + }, + "CustomStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.CustomStepDetails" + }, + "DeleteStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.DeleteStepDetails" + }, + "TagStepDetails": { + "$ref": "#/definitions/AWS::Transfer::Workflow.TagStepDetails" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::VoiceID::Domain": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::VoiceID::Domain.ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Name", + "ServerSideEncryptionConfiguration" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::VoiceID::Domain" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::VoiceID::Domain.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "required": [ + "KmsKeyId" + ], + "type": "object" + }, + "AWS::WAF::ByteMatchSet": { + "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": { + "ByteMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAF::ByteMatchSet.ByteMatchTuple" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAF::ByteMatchSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAF::ByteMatchSet.ByteMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAF::ByteMatchSet.FieldToMatch" + }, + "PositionalConstraint": { + "type": "string" + }, + "TargetString": { + "type": "string" + }, + "TargetStringBase64": { + "type": "string" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAF::ByteMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::IPSet": { + "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": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/AWS::WAF::IPSet.IPSetDescriptor" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAF::IPSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAF::IPSet.IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::WAF::Rule": { + "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": { + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/AWS::WAF::Rule.Predicate" + }, + "type": "array" + } + }, + "required": [ + "MetricName", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAF::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAF::Rule.Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "DataId", + "Negated", + "Type" + ], + "type": "object" + }, + "AWS::WAF::SizeConstraintSet": { + "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": { + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.SizeConstraint" + }, + "type": "array" + } + }, + "required": [ + "Name", + "SizeConstraints" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAF::SizeConstraintSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAF::SizeConstraintSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::SizeConstraintSet.SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAF::SizeConstraintSet.FieldToMatch" + }, + "Size": { + "type": "number" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "FieldToMatch", + "Size", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAF::SqlInjectionMatchSet": { + "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": { + "Name": { + "type": "string" + }, + "SqlInjectionMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAF::SqlInjectionMatchSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAF::SqlInjectionMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::SqlInjectionMatchSet.SqlInjectionMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet.FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAF::WebACL": { + "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": { + "DefaultAction": { + "$ref": "#/definitions/AWS::WAF::WebACL.WafAction" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAF::WebACL.ActivatedRule" + }, + "type": "array" + } + }, + "required": [ + "DefaultAction", + "MetricName", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAF::WebACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAF::WebACL.ActivatedRule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::WAF::WebACL.WafAction" + }, + "Priority": { + "type": "number" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Priority", + "RuleId" + ], + "type": "object" + }, + "AWS::WAF::WebACL.WafAction": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::XssMatchSet": { + "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": { + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAF::XssMatchSet.XssMatchTuple" + }, + "type": "array" + } + }, + "required": [ + "Name", + "XssMatchTuples" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAF::XssMatchSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAF::XssMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAF::XssMatchSet.XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAF::XssMatchSet.FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAFRegional::ByteMatchSet": { + "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": { + "ByteMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet.ByteMatchTuple" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::ByteMatchSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::ByteMatchSet.ByteMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet.FieldToMatch" + }, + "PositionalConstraint": { + "type": "string" + }, + "TargetString": { + "type": "string" + }, + "TargetStringBase64": { + "type": "string" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAFRegional::ByteMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::GeoMatchSet": { + "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": { + "GeoMatchConstraints": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::GeoMatchSet.GeoMatchConstraint" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::GeoMatchSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::GeoMatchSet.GeoMatchConstraint": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::WAFRegional::IPSet": { + "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": { + "IPSetDescriptors": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::IPSet.IPSetDescriptor" + }, + "type": "array" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::IPSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::IPSet.IPSetDescriptor": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Type", + "Value" + ], + "type": "object" + }, + "AWS::WAFRegional::RateBasedRule": { + "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": { + "MatchPredicates": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::RateBasedRule.Predicate" + }, + "type": "array" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RateKey": { + "type": "string" + }, + "RateLimit": { + "type": "number" + } + }, + "required": [ + "MetricName", + "Name", + "RateKey", + "RateLimit" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::RateBasedRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::RateBasedRule.Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "DataId", + "Negated", + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::RegexPatternSet": { + "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": { + "Name": { + "type": "string" + }, + "RegexPatternStrings": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "Name", + "RegexPatternStrings" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::RegexPatternSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::Rule": { + "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": { + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Predicates": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::Rule.Predicate" + }, + "type": "array" + } + }, + "required": [ + "MetricName", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::Rule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::Rule.Predicate": { + "additionalProperties": false, + "properties": { + "DataId": { + "type": "string" + }, + "Negated": { + "type": "boolean" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "DataId", + "Negated", + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::SizeConstraintSet": { + "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": { + "Name": { + "type": "string" + }, + "SizeConstraints": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.SizeConstraint" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::SizeConstraintSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::SizeConstraintSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::SizeConstraintSet.SizeConstraint": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet.FieldToMatch" + }, + "Size": { + "type": "number" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "ComparisonOperator", + "FieldToMatch", + "Size", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAFRegional::SqlInjectionMatchSet": { + "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": { + "Name": { + "type": "string" + }, + "SqlInjectionMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::SqlInjectionMatchSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::SqlInjectionMatchSet.SqlInjectionMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet.FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAFRegional::WebACL": { + "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": { + "DefaultAction": { + "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action" + }, + "MetricName": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::WebACL.Rule" + }, + "type": "array" + } + }, + "required": [ + "DefaultAction", + "MetricName", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::WebACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::WebACL.Action": { + "additionalProperties": false, + "properties": { + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::WebACL.Rule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::WAFRegional::WebACL.Action" + }, + "Priority": { + "type": "number" + }, + "RuleId": { + "type": "string" + } + }, + "required": [ + "Action", + "Priority", + "RuleId" + ], + "type": "object" + }, + "AWS::WAFRegional::WebACLAssociation": { + "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": { + "ResourceArn": { + "type": "string" + }, + "WebACLId": { + "type": "string" + } + }, + "required": [ + "ResourceArn", + "WebACLId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::WebACLAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::XssMatchSet": { + "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": { + "Name": { + "type": "string" + }, + "XssMatchTuples": { + "items": { + "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.XssMatchTuple" + }, + "type": "array" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFRegional::XssMatchSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFRegional::XssMatchSet.FieldToMatch": { + "additionalProperties": false, + "properties": { + "Data": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::WAFRegional::XssMatchSet.XssMatchTuple": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet.FieldToMatch" + }, + "TextTransformation": { + "type": "string" + } + }, + "required": [ + "FieldToMatch", + "TextTransformation" + ], + "type": "object" + }, + "AWS::WAFv2::IPSet": { + "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": { + "Addresses": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Description": { + "type": "string" + }, + "IPAddressVersion": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Scope": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "Addresses", + "IPAddressVersion", + "Scope" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFv2::IPSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFv2::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": { + "LogDestinationConfigs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "LoggingFilter": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.LoggingFilter" + }, + "RedactedFields": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.FieldToMatch" + }, + "type": "array" + }, + "ResourceArn": { + "type": "string" + } + }, + "required": [ + "LogDestinationConfigs", + "ResourceArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFv2::LoggingConfiguration" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.ActionCondition": { + "additionalProperties": false, + "properties": { + "Action": { + "type": "string" + } + }, + "required": [ + "Action" + ], + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.Condition": { + "additionalProperties": false, + "properties": { + "ActionCondition": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.ActionCondition" + }, + "LabelNameCondition": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.LabelNameCondition" + } + }, + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.FieldToMatch": { + "additionalProperties": false, + "properties": { + "JsonBody": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.JsonBody" + }, + "Method": { + "type": "object" + }, + "QueryString": { + "type": "object" + }, + "SingleHeader": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.SingleHeader" + }, + "UriPath": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.Filter": { + "additionalProperties": false, + "properties": { + "Behavior": { + "type": "string" + }, + "Conditions": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.Condition" + }, + "type": "array" + }, + "Requirement": { + "type": "string" + } + }, + "required": [ + "Behavior", + "Conditions", + "Requirement" + ], + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.JsonBody": { + "additionalProperties": false, + "properties": { + "InvalidFallbackBehavior": { + "type": "string" + }, + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.MatchPattern" + }, + "MatchScope": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.LabelNameCondition": { + "additionalProperties": false, + "properties": { + "LabelName": { + "type": "string" + } + }, + "required": [ + "LabelName" + ], + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.LoggingFilter": { + "additionalProperties": false, + "properties": { + "DefaultBehavior": { + "type": "string" + }, + "Filters": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration.Filter" + }, + "type": "array" + } + }, + "required": [ + "DefaultBehavior", + "Filters" + ], + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.MatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "type": "object" + }, + "IncludedPaths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::LoggingConfiguration.SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::RegexPatternSet": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RegularExpressionList": { + "items": { + "type": "string" + }, + "type": "array" + }, + "Scope": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "RegularExpressionList", + "Scope" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFv2::RegexPatternSet" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup": { + "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": { + "AvailableLabels": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelSummary" + }, + "type": "array" + }, + "Capacity": { + "type": "number" + }, + "ConsumedLabels": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelSummary" + }, + "type": "array" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomResponseBody" + } + }, + "type": "object" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Rule" + }, + "type": "array" + }, + "Scope": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig" + } + }, + "required": [ + "Capacity", + "Scope", + "VisibilityConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFv2::RuleGroup" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Allow": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Block": { + "additionalProperties": false, + "properties": { + "CustomResponse": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomResponse" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Body": { + "additionalProperties": false, + "properties": { + "OversizeHandling": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.ByteMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + }, + "PositionalConstraint": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "SearchStringBase64": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Captcha": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ImmunityTimeProperty" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Challenge": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ImmunityTimeProperty" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.CookieMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "type": "object" + }, + "ExcludedCookies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludedCookies": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Cookies": { + "additionalProperties": false, + "properties": { + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CookieMatchPattern" + }, + "MatchScope": { + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Count": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.CustomHTTPHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.CustomRequestHandling": { + "additionalProperties": false, + "properties": { + "InsertHeaders": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomHTTPHeader" + }, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.CustomResponse": { + "additionalProperties": false, + "properties": { + "CustomResponseBodyKey": { + "type": "string" + }, + "ResponseCode": { + "type": "number" + }, + "ResponseHeaders": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CustomHTTPHeader" + }, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.CustomResponseBody": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.FieldToMatch": { + "additionalProperties": false, + "properties": { + "AllQueryArguments": { + "type": "object" + }, + "Body": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Body" + }, + "Cookies": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Cookies" + }, + "Headers": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Headers" + }, + "JsonBody": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonBody" + }, + "Method": { + "type": "object" + }, + "QueryString": { + "type": "object" + }, + "SingleHeader": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleHeader" + }, + "SingleQueryArgument": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SingleQueryArgument" + }, + "UriPath": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "type": "string" + }, + "HeaderName": { + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.HeaderMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Headers": { + "additionalProperties": false, + "properties": { + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.HeaderMatchPattern" + }, + "MatchScope": { + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "type": "string" + }, + "HeaderName": { + "type": "string" + }, + "Position": { + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName", + "Position" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "type": "number" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.JsonBody": { + "additionalProperties": false, + "properties": { + "InvalidFallbackBehavior": { + "type": "string" + }, + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.JsonMatchPattern" + }, + "MatchScope": { + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.JsonMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "type": "object" + }, + "IncludedPaths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Label": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Scope": { + "type": "string" + } + }, + "required": [ + "Key", + "Scope" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.LabelSummary": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ForwardedIPConfiguration" + }, + "Limit": { + "type": "number" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + } + }, + "required": [ + "AggregateKeyType", + "Limit" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + }, + "RegexString": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "RegexString", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Rule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ChallengeConfig" + }, + "Name": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "RuleLabels": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.RuleAction": { + "additionalProperties": false, + "properties": { + "Allow": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Allow" + }, + "Block": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Block" + }, + "Captcha": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Captcha" + }, + "Challenge": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Challenge" + }, + "Count": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.Count" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.SingleQueryArgument": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.SizeConstraintStatement": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + }, + "Size": { + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "ComparisonOperator", + "FieldToMatch", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.SqliMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + }, + "SensitivityLevel": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.Statement": { + "additionalProperties": false, + "properties": { + "AndStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.LabelMatchStatement" + }, + "NotStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.RegexPatternSetReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.XssMatchStatement" + } + }, + "type": "object" + }, + "AWS::WAFv2::RuleGroup.TextTransformation": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.VisibilityConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "CloudWatchMetricsEnabled", + "MetricName", + "SampledRequestsEnabled" + ], + "type": "object" + }, + "AWS::WAFv2::RuleGroup.XssMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL": { + "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": { + "CaptchaConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig" + }, + "CustomResponseBodies": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponseBody" + } + }, + "type": "object" + }, + "DefaultAction": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.DefaultAction" + }, + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Rules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Rule" + }, + "type": "array" + }, + "Scope": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "TokenDomains": { + "items": { + "type": "string" + }, + "type": "array" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig" + } + }, + "required": [ + "DefaultAction", + "Scope", + "VisibilityConfig" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFv2::WebACL" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet": { + "additionalProperties": false, + "properties": { + "InspectionLevel": { + "type": "string" + } + }, + "required": [ + "InspectionLevel" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.AllowAction": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.AndStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.BlockAction": { + "additionalProperties": false, + "properties": { + "CustomResponse": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomResponse" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.Body": { + "additionalProperties": false, + "properties": { + "OversizeHandling": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ByteMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + }, + "PositionalConstraint": { + "type": "string" + }, + "SearchString": { + "type": "string" + }, + "SearchStringBase64": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "PositionalConstraint", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CaptchaAction": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.CaptchaConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ImmunityTimeProperty" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ChallengeAction": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ChallengeConfig": { + "additionalProperties": false, + "properties": { + "ImmunityTimeProperty": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ImmunityTimeProperty" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.CookieMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "type": "object" + }, + "ExcludedCookies": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludedCookies": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.Cookies": { + "additionalProperties": false, + "properties": { + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CookieMatchPattern" + }, + "MatchScope": { + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CountAction": { + "additionalProperties": false, + "properties": { + "CustomRequestHandling": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomRequestHandling" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomHTTPHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Name", + "Value" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomRequestHandling": { + "additionalProperties": false, + "properties": { + "InsertHeaders": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader" + }, + "type": "array" + } + }, + "required": [ + "InsertHeaders" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomResponse": { + "additionalProperties": false, + "properties": { + "CustomResponseBodyKey": { + "type": "string" + }, + "ResponseCode": { + "type": "number" + }, + "ResponseHeaders": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CustomHTTPHeader" + }, + "type": "array" + } + }, + "required": [ + "ResponseCode" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.CustomResponseBody": { + "additionalProperties": false, + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string" + } + }, + "required": [ + "Content", + "ContentType" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.DefaultAction": { + "additionalProperties": false, + "properties": { + "Allow": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction" + }, + "Block": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ExcludedRule": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.FieldIdentifier": { + "additionalProperties": false, + "properties": { + "Identifier": { + "type": "string" + } + }, + "required": [ + "Identifier" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.FieldToMatch": { + "additionalProperties": false, + "properties": { + "AllQueryArguments": { + "type": "object" + }, + "Body": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Body" + }, + "Cookies": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Cookies" + }, + "Headers": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Headers" + }, + "JsonBody": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonBody" + }, + "Method": { + "type": "object" + }, + "QueryString": { + "type": "object" + }, + "SingleHeader": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleHeader" + }, + "SingleQueryArgument": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SingleQueryArgument" + }, + "UriPath": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "type": "string" + }, + "HeaderName": { + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.GeoMatchStatement": { + "additionalProperties": false, + "properties": { + "CountryCodes": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.HeaderMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "type": "object" + }, + "ExcludedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + }, + "IncludedHeaders": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.Headers": { + "additionalProperties": false, + "properties": { + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.HeaderMatchPattern" + }, + "MatchScope": { + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope", + "OversizeHandling" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration": { + "additionalProperties": false, + "properties": { + "FallbackBehavior": { + "type": "string" + }, + "HeaderName": { + "type": "string" + }, + "Position": { + "type": "string" + } + }, + "required": [ + "FallbackBehavior", + "HeaderName", + "Position" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.IPSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "IPSetForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetForwardedIPConfiguration" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ImmunityTimeProperty": { + "additionalProperties": false, + "properties": { + "ImmunityTime": { + "type": "number" + } + }, + "required": [ + "ImmunityTime" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.JsonBody": { + "additionalProperties": false, + "properties": { + "InvalidFallbackBehavior": { + "type": "string" + }, + "MatchPattern": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.JsonMatchPattern" + }, + "MatchScope": { + "type": "string" + }, + "OversizeHandling": { + "type": "string" + } + }, + "required": [ + "MatchPattern", + "MatchScope" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.JsonMatchPattern": { + "additionalProperties": false, + "properties": { + "All": { + "type": "object" + }, + "IncludedPaths": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.Label": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.LabelMatchStatement": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Scope": { + "type": "string" + } + }, + "required": [ + "Key", + "Scope" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.ManagedRuleGroupConfig": { + "additionalProperties": false, + "properties": { + "AWSManagedRulesBotControlRuleSet": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AWSManagedRulesBotControlRuleSet" + }, + "LoginPath": { + "type": "string" + }, + "PasswordField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + }, + "PayloadType": { + "type": "string" + }, + "UsernameField": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldIdentifier" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.ManagedRuleGroupStatement": { + "additionalProperties": false, + "properties": { + "ExcludedRules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule" + }, + "type": "array" + }, + "ManagedRuleGroupConfigs": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupConfig" + }, + "type": "array" + }, + "Name": { + "type": "string" + }, + "RuleActionOverrides": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleActionOverride" + }, + "type": "array" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + }, + "VendorName": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "required": [ + "Name", + "VendorName" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.NotStatement": { + "additionalProperties": false, + "properties": { + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + } + }, + "required": [ + "Statement" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.OrStatement": { + "additionalProperties": false, + "properties": { + "Statements": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + }, + "type": "array" + } + }, + "required": [ + "Statements" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.OverrideAction": { + "additionalProperties": false, + "properties": { + "Count": { + "type": "object" + }, + "None": { + "type": "object" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.RateBasedStatement": { + "additionalProperties": false, + "properties": { + "AggregateKeyType": { + "type": "string" + }, + "ForwardedIPConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ForwardedIPConfiguration" + }, + "Limit": { + "type": "number" + }, + "ScopeDownStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + } + }, + "required": [ + "AggregateKeyType", + "Limit" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.RegexMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + }, + "RegexString": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "RegexString", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "Arn", + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.Rule": { + "additionalProperties": false, + "properties": { + "Action": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleAction" + }, + "CaptchaConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaConfig" + }, + "ChallengeConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeConfig" + }, + "Name": { + "type": "string" + }, + "OverrideAction": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.OverrideAction" + }, + "Priority": { + "type": "number" + }, + "RuleLabels": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Label" + }, + "type": "array" + }, + "Statement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.Statement" + }, + "VisibilityConfig": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.VisibilityConfig" + } + }, + "required": [ + "Name", + "Priority", + "Statement", + "VisibilityConfig" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.RuleAction": { + "additionalProperties": false, + "properties": { + "Allow": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AllowAction" + }, + "Block": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.BlockAction" + }, + "Captcha": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CaptchaAction" + }, + "Challenge": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ChallengeAction" + }, + "Count": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.CountAction" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.RuleActionOverride": { + "additionalProperties": false, + "properties": { + "ActionToUse": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleAction" + }, + "Name": { + "type": "string" + } + }, + "required": [ + "ActionToUse", + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.RuleGroupReferenceStatement": { + "additionalProperties": false, + "properties": { + "Arn": { + "type": "string" + }, + "ExcludedRules": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ExcludedRule" + }, + "type": "array" + }, + "RuleActionOverrides": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleActionOverride" + }, + "type": "array" + } + }, + "required": [ + "Arn" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.SingleHeader": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.SingleQueryArgument": { + "additionalProperties": false, + "properties": { + "Name": { + "type": "string" + } + }, + "required": [ + "Name" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.SizeConstraintStatement": { + "additionalProperties": false, + "properties": { + "ComparisonOperator": { + "type": "string" + }, + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + }, + "Size": { + "type": "number" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "ComparisonOperator", + "FieldToMatch", + "Size", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.SqliMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + }, + "SensitivityLevel": { + "type": "string" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.Statement": { + "additionalProperties": false, + "properties": { + "AndStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.AndStatement" + }, + "ByteMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ByteMatchStatement" + }, + "GeoMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.GeoMatchStatement" + }, + "IPSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.IPSetReferenceStatement" + }, + "LabelMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.LabelMatchStatement" + }, + "ManagedRuleGroupStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.ManagedRuleGroupStatement" + }, + "NotStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.NotStatement" + }, + "OrStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.OrStatement" + }, + "RateBasedStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RateBasedStatement" + }, + "RegexMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexMatchStatement" + }, + "RegexPatternSetReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RegexPatternSetReferenceStatement" + }, + "RuleGroupReferenceStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.RuleGroupReferenceStatement" + }, + "SizeConstraintStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SizeConstraintStatement" + }, + "SqliMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.SqliMatchStatement" + }, + "XssMatchStatement": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.XssMatchStatement" + } + }, + "type": "object" + }, + "AWS::WAFv2::WebACL.TextTransformation": { + "additionalProperties": false, + "properties": { + "Priority": { + "type": "number" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Priority", + "Type" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.VisibilityConfig": { + "additionalProperties": false, + "properties": { + "CloudWatchMetricsEnabled": { + "type": "boolean" + }, + "MetricName": { + "type": "string" + }, + "SampledRequestsEnabled": { + "type": "boolean" + } + }, + "required": [ + "CloudWatchMetricsEnabled", + "MetricName", + "SampledRequestsEnabled" + ], + "type": "object" + }, + "AWS::WAFv2::WebACL.XssMatchStatement": { + "additionalProperties": false, + "properties": { + "FieldToMatch": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.FieldToMatch" + }, + "TextTransformations": { + "items": { + "$ref": "#/definitions/AWS::WAFv2::WebACL.TextTransformation" + }, + "type": "array" + } + }, + "required": [ + "FieldToMatch", + "TextTransformations" + ], + "type": "object" + }, + "AWS::WAFv2::WebACLAssociation": { + "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": { + "ResourceArn": { + "type": "string" + }, + "WebACLArn": { + "type": "string" + } + }, + "required": [ + "ResourceArn", + "WebACLArn" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WAFv2::WebACLAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::Assistant": { + "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": { + "Description": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "Type": { + "type": "string" + } + }, + "required": [ + "Name", + "Type" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::Assistant" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::Assistant.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation": { + "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": { + "AssistantId": { + "type": "string" + }, + "Association": { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation.AssociationData" + }, + "AssociationType": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "AssistantId", + "Association", + "AssociationType" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::AssistantAssociation" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::AssistantAssociation.AssociationData": { + "additionalProperties": false, + "properties": { + "KnowledgeBaseId": { + "type": "string" + } + }, + "required": [ + "KnowledgeBaseId" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase": { + "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": { + "Description": { + "type": "string" + }, + "KnowledgeBaseType": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "RenderingConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.RenderingConfiguration" + }, + "ServerSideEncryptionConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration" + }, + "SourceConfiguration": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.SourceConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "KnowledgeBaseType", + "Name" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::Wisdom::KnowledgeBase" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrationArn": { + "type": "string" + }, + "ObjectFields": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "AppIntegrationArn", + "ObjectFields" + ], + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.RenderingConfiguration": { + "additionalProperties": false, + "properties": { + "TemplateUri": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.ServerSideEncryptionConfiguration": { + "additionalProperties": false, + "properties": { + "KmsKeyId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::Wisdom::KnowledgeBase.SourceConfiguration": { + "additionalProperties": false, + "properties": { + "AppIntegrations": { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase.AppIntegrationsConfiguration" + } + }, + "required": [ + "AppIntegrations" + ], + "type": "object" + }, + "AWS::WorkSpaces::ConnectionAlias": { + "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": { + "ConnectionString": { + "type": "string" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + } + }, + "required": [ + "ConnectionString" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WorkSpaces::ConnectionAlias" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WorkSpaces::ConnectionAlias.ConnectionAliasAssociation": { + "additionalProperties": false, + "properties": { + "AssociatedAccountId": { + "type": "string" + }, + "AssociationStatus": { + "type": "string" + }, + "ConnectionIdentifier": { + "type": "string" + }, + "ResourceId": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::WorkSpaces::Workspace": { + "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": { + "BundleId": { + "type": "string" + }, + "DirectoryId": { + "type": "string" + }, + "RootVolumeEncryptionEnabled": { + "type": "boolean" + }, + "Tags": { + "items": { + "$ref": "#/definitions/Tag" + }, + "type": "array" + }, + "UserName": { + "type": "string" + }, + "UserVolumeEncryptionEnabled": { + "type": "boolean" + }, + "VolumeEncryptionKey": { + "type": "string" + }, + "WorkspaceProperties": { + "$ref": "#/definitions/AWS::WorkSpaces::Workspace.WorkspaceProperties" + } + }, + "required": [ + "BundleId", + "DirectoryId", + "UserName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::WorkSpaces::Workspace" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::WorkSpaces::Workspace.WorkspaceProperties": { + "additionalProperties": false, + "properties": { + "ComputeTypeName": { + "type": "string" + }, + "RootVolumeSizeGib": { + "type": "number" + }, + "RunningMode": { + "type": "string" + }, + "RunningModeAutoStopTimeoutInMinutes": { + "type": "number" + }, + "UserVolumeSizeGib": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::XRay::Group": { + "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": { + "FilterExpression": { + "type": "string" + }, + "GroupName": { + "type": "string" + }, + "InsightsConfiguration": { + "$ref": "#/definitions/AWS::XRay::Group.InsightsConfiguration" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::XRay::Group.TagsItems" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::XRay::Group" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::XRay::Group.InsightsConfiguration": { + "additionalProperties": false, + "properties": { + "InsightsEnabled": { + "type": "boolean" + }, + "NotificationsEnabled": { + "type": "boolean" + } + }, + "type": "object" + }, + "AWS::XRay::Group.TagsItems": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "AWS::XRay::ResourcePolicy": { + "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": { + "BypassPolicyLockoutCheck": { + "type": "boolean" + }, + "PolicyDocument": { + "type": "string" + }, + "PolicyName": { + "type": "string" + } + }, + "required": [ + "PolicyDocument", + "PolicyName" + ], + "type": "object" + }, + "Type": { + "enum": [ + "AWS::XRay::ResourcePolicy" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "AWS::XRay::SamplingRule": { + "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": { + "RuleName": { + "type": "string" + }, + "SamplingRule": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" + }, + "SamplingRuleRecord": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleRecord" + }, + "SamplingRuleUpdate": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRuleUpdate" + }, + "Tags": { + "items": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.TagsItems" + }, + "type": "array" + } + }, + "type": "object" + }, + "Type": { + "enum": [ + "AWS::XRay::SamplingRule" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "AWS::XRay::SamplingRule.SamplingRule": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "FixedRate": { + "type": "number" + }, + "HTTPMethod": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "ReservoirSize": { + "type": "number" + }, + "ResourceARN": { + "type": "string" + }, + "RuleARN": { + "type": "string" + }, + "RuleName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "ServiceType": { + "type": "string" + }, + "URLPath": { + "type": "string" + }, + "Version": { + "type": "number" + } + }, + "type": "object" + }, + "AWS::XRay::SamplingRule.SamplingRuleRecord": { + "additionalProperties": false, + "properties": { + "CreatedAt": { + "type": "string" + }, + "ModifiedAt": { + "type": "string" + }, + "SamplingRule": { + "$ref": "#/definitions/AWS::XRay::SamplingRule.SamplingRule" + } + }, + "type": "object" + }, + "AWS::XRay::SamplingRule.SamplingRuleUpdate": { + "additionalProperties": false, + "properties": { + "Attributes": { + "additionalProperties": true, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "string" + } + }, + "type": "object" + }, + "FixedRate": { + "type": "number" + }, + "HTTPMethod": { + "type": "string" + }, + "Host": { + "type": "string" + }, + "Priority": { + "type": "number" + }, + "ReservoirSize": { + "type": "number" + }, + "ResourceARN": { + "type": "string" + }, + "RuleARN": { + "type": "string" + }, + "RuleName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "ServiceType": { + "type": "string" + }, + "URLPath": { + "type": "string" + } + }, + "type": "object" + }, + "AWS::XRay::SamplingRule.TagsItems": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "Alexa::ASK::Skill": { + "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": { + "AuthenticationConfiguration": { + "$ref": "#/definitions/Alexa::ASK::Skill.AuthenticationConfiguration" + }, + "SkillPackage": { + "$ref": "#/definitions/Alexa::ASK::Skill.SkillPackage" + }, + "VendorId": { + "type": "string" + } + }, + "required": [ + "AuthenticationConfiguration", + "SkillPackage", + "VendorId" + ], + "type": "object" + }, + "Type": { + "enum": [ + "Alexa::ASK::Skill" + ], + "type": "string" + }, + "UpdateReplacePolicy": { + "enum": [ + "Delete", + "Retain", + "Snapshot" + ], + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "Alexa::ASK::Skill.AuthenticationConfiguration": { + "additionalProperties": false, + "properties": { + "ClientId": { + "type": "string" + }, + "ClientSecret": { + "type": "string" + }, + "RefreshToken": { + "type": "string" + } + }, + "required": [ + "ClientId", + "ClientSecret", + "RefreshToken" + ], + "type": "object" + }, + "Alexa::ASK::Skill.Overrides": { + "additionalProperties": false, + "properties": { + "Manifest": { + "type": "object" + } + }, + "type": "object" + }, + "Alexa::ASK::Skill.SkillPackage": { + "additionalProperties": false, + "properties": { + "Overrides": { + "$ref": "#/definitions/Alexa::ASK::Skill.Overrides" + }, + "S3Bucket": { + "type": "string" + }, + "S3BucketRole": { + "type": "string" + }, + "S3Key": { + "type": "string" + }, + "S3ObjectVersion": { + "type": "string" + } + }, + "required": [ + "S3Bucket", + "S3Key" + ], + "type": "object" + }, + "AlexaSkillEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "AlexaSkillEvent", + "type": "object" + }, + "AlexaSkillEventProperties": { + "additionalProperties": false, + "properties": { + "SkillId": { + "description": "The Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\. \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 Alexa Skill ID for your Alexa Skill\\. For more information about Skill ID see [Configure the trigger for a Lambda function](https://developer.amazon.com/docs/custom-skills/host-a-custom-skill-as-an-aws-lambda-function.html#configuring-the-alexa-skills-kit-trigger) in the Alexa Skills Kit documentation\\. \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": "SkillId", + "type": "string" + } + }, + "title": "AlexaSkillEventProperties", + "type": "object" + }, + "ApiAuth": { + "additionalProperties": false, + "properties": { + "ApiKeyRequired": { + "description": "Requires an API key for this API, path, and method\\. \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": "Requires an API key for this API, path, and method\\. \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": "ApiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "description": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Authorizer": { + "description": "The `Authorizer` for a specific Function \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific Function \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "type": "string" + }, + "InvokeRole": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\. \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.", + "markdownDescription": "Specifies the `InvokeRole` to use for `AWS_IAM` authorization\\. \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: `CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\.", + "title": "InvokeRole" + }, + "ResourcePolicy": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ResourcePolicy" + } + ], + "description": "Configure Resource Policy for this path on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configure Resource Policy for this path on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ResourcePolicy" + } + }, + "title": "ApiAuth", + "type": "object" + }, + "CloudWatchLogsEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CloudWatchLogsEvent", + "type": "object" + }, + "CloudWatchLogsEventProperties": { + "additionalProperties": false, + "properties": { + "FilterPattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "markdownDescription": "The filtering expressions that restrict what gets delivered to the destination AWS resource\\. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FilterPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-filterpattern) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "title": "FilterPattern" + }, + "LogGroupName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "markdownDescription": "The log group to associate with the subscription filter\\. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LogGroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-subscriptionfilter.html#cfn-cwl-subscriptionfilter-loggroupname) property of an `AWS::Logs::SubscriptionFilter` resource\\.", + "title": "LogGroupName" + } + }, + "required": [ + "FilterPattern", + "LogGroupName" + ], + "title": "CloudWatchLogsEventProperties", + "type": "object" + }, + "CodeUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Bucket" + }, + "Key": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon S3 key of the deployment package\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "The Amazon S3 key of the deployment package\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3key) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "Key" + }, + "Version": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "For versioned objects, the version of the deployment package object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "For versioned objects, the version of the deployment package object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3objectversion) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "Version" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "CodeUri", + "type": "object" + }, + "CognitoAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/CognitoAuthorizerIdentity" + } + ], + "description": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "This property can be used to specify an `IdentitySource` in an incoming request for an authorizer\\. \n*Type*: [CognitoAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Identity" + }, + "UserPoolArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer \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": "Can refer to a user pool/specify a userpool arn to which you want to add this cognito authorizer \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": "UserPoolArn" + } + }, + "required": [ + "UserPoolArn" + ], + "title": "CognitoAuthorizer", + "type": "object" + }, + "CognitoAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Header": { + "description": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Header", + "type": "string" + }, + "ReauthorizeEvery": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery" + }, + "ValidationExpression": { + "description": "Specify a validation expression for validating the incoming Identity \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": "Specify a validation expression for validating the incoming Identity \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": "ValidationExpression", + "type": "string" + } + }, + "title": "CognitoAuthorizerIdentity", + "type": "object" + }, + "CognitoEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CognitoEvent", + "type": "object" + }, + "CognitoEventProperties": { + "additionalProperties": false, + "properties": { + "Trigger": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Lambda trigger configuration information for the new user pool\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.", + "markdownDescription": "The Lambda trigger configuration information for the new user pool\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LambdaConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cognito-userpool-lambdaconfig.html) property of an `AWS::Cognito::UserPool` resource\\.", + "title": "Trigger" + }, + "UserPool": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Reference to UserPool defined in the same template \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": "Reference to UserPool defined in the same template \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": "UserPool" + } + }, + "required": [ + "Trigger", + "UserPool" + ], + "title": "CognitoEventProperties", + "type": "object" + }, + "ContentUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 bucket of the layer archive\\. \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-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "markdownDescription": "The Amazon S3 bucket of the layer archive\\. \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-layerversion-content.html#cfn-lambda-layerversion-content-s3bucket) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "title": "Bucket" + }, + "Key": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 key of the layer archive\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "markdownDescription": "The Amazon S3 key of the layer archive\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3key) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "title": "Key" + }, + "Version": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "For versioned objects, the version of the layer archive object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "markdownDescription": "For versioned objects, the version of the layer archive object to use\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`S3ObjectVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-layerversion-content.html#cfn-lambda-layerversion-content-s3objectversion) property of the `AWS::Lambda::LayerVersion` `Content` data type\\.", + "title": "Version" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "ContentUri", + "type": "object" + }, + "Cors": { + "additionalProperties": false, + "properties": { + "AllowCredentials": { + "description": "Boolean indicating whether request is allowed to contain credentials\\. \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": "Boolean indicating whether request is allowed to contain credentials\\. \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": "AllowCredentials", + "type": "boolean" + }, + "AllowHeaders": { + "description": "String of headers to allow\\. \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": "String of headers to allow\\. \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": "AllowHeaders", + "type": "string" + }, + "AllowMethods": { + "description": "String containing the HTTP methods to allow\\. \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": "String containing the HTTP methods to allow\\. \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": "AllowMethods", + "type": "string" + }, + "AllowOrigin": { + "description": "String of origin to allow\\. \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": "String of origin to allow\\. \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": "AllowOrigin", + "type": "string" + }, + "MaxAge": { + "description": "String containing the number of seconds to cache CORS Preflight request\\. \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": "String containing the number of seconds to cache CORS Preflight request\\. \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": "MaxAge", + "type": "string" + } + }, + "required": [ + "AllowOrigin" + ], + "title": "Cors", + "type": "object" + }, + "CustomResource": { + "additionalProperties": false, + "properties": { + "Properties": { + "additionalProperties": true, + "properties": { + "ServiceToken": { + "type": "string" + } + }, + "required": [ + "ServiceToken" + ], + "type": "object" + }, + "Type": { + "pattern": "^Custom::[a-zA-Z_@-]+$", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "type": "object" + }, + "DeadLetterQueue": { + "additionalProperties": false, + "properties": { + "TargetArn": { + "description": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an Amazon SQS queue or Amazon SNS topic\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TargetArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html#cfn-lambda-function-deadletterconfig-targetarn) property of the `AWS::Lambda::Function` `DeadLetterConfig` data type\\.", + "title": "TargetArn", + "type": "string" + }, + "Type": { + "description": "The type of dead letter queue\\. \n*Valid values*: `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", + "SQS" + ], + "markdownDescription": "The type of dead letter queue\\. \n*Valid values*: `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" + } + }, + "required": [ + "TargetArn", + "Type" + ], + "title": "DeadLetterQueue", + "type": "object" + }, + "DeploymentPreference": { + "additionalProperties": false, + "properties": { + "Alarms": { + "anyOf": [ + { + "type": "object" + }, + { + "items": { + "type": "object" + }, + "type": "array" + } + ], + "description": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\. \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\. \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\\.", + "markdownDescription": "A list of CloudWatch alarms that you want to be triggered by any errors raised by the deployment\\. \nThis property accepts the `Fn::If` intrinsic function\\. See the Examples section at the bottom of this topic for an example template that uses `Fn::If`\\. \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\\.", + "title": "Alarms" + }, + "Enabled": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "boolean" + } + ], + "description": "Whether this deployment preference is enabled\\. \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": "Whether this deployment preference is enabled\\. \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\\.", + "title": "Enabled" + }, + "Hooks": { + "allOf": [ + { + "$ref": "#/definitions/Hooks" + } + ], + "description": "Validation Lambda functions that are run before and after traffic shifting\\. \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Validation Lambda functions that are run before and after traffic shifting\\. \n*Type*: [Hooks](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-hooks.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Hooks" + }, + "PassthroughCondition": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "boolean" + } + ], + "description": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to 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": "If True, and if this deployment preference is enabled, the function's Condition will be passed through to the generated CodeDeploy resource\\. Generally, you should set this to True\\. Otherwise, the CodeDeploy resource would be created even if the function's Condition resolves to 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": "PassthroughCondition" + }, + "Role": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\. \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": "An IAM role ARN that CodeDeploy will use for traffic shifting\\. An IAM role will not be created if this is provided\\. \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": "Role" + }, + "TriggerConfigurations": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "TriggerConfigurations" + }, + "Type": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Type" + } + }, + "title": "DeploymentPreference", + "type": "object" + }, + "DynamoDBEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "DynamoDBEvent", + "type": "object" + }, + "DynamoDBEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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`", + "markdownDescription": "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`", + "title": "BatchSize" + }, + "BisectBatchOnFunctionError": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BisectBatchOnFunctionError" + }, + "DestinationConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "DestinationConfig" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "FunctionResponseTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "FunctionResponseTypes" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "MaximumRecordAgeInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRecordAgeInSeconds" + }, + "MaximumRetryAttempts": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRetryAttempts" + }, + "ParallelizationFactor": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ParallelizationFactor" + }, + "StartingPosition": { + "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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": { + "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" + }, + "Stream": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the DynamoDB stream\\. \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 DynamoDB stream\\. \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": "Stream" + }, + "TumblingWindowInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "TumblingWindowInSeconds" + } + }, + "required": [ + "StartingPosition", + "Stream" + ], + "title": "DynamoDBEventProperties", + "type": "object" + }, + "EndpointConfiguration": { + "additionalProperties": false, + "properties": { + "Type": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The endpoint type of a REST API\\. \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "markdownDescription": "The endpoint type of a REST API\\. \n*Valid values*: `EDGE` or `REGIONAL` or `PRIVATE` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Types`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-types) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "title": "Type" + }, + "VPCEndpointIds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "markdownDescription": "A list of VPC endpoint IDs of a REST API against which to create Route53 aliases\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcEndpointIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-endpointconfiguration.html#cfn-apigateway-restapi-endpointconfiguration-vpcendpointids) property of the `AWS::ApiGateway::RestApi` `EndpointConfiguration` data type\\.", + "title": "VPCEndpointIds" + } + }, + "title": "EndpointConfiguration", + "type": "object" + }, + "EventInvokeConfig": { + "additionalProperties": false, + "properties": { + "DestinationConfig": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeDestinationConfig" + } + ], + "description": "A configuration object that specifies the destination of an event after Lambda processes it\\. \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.", + "markdownDescription": "A configuration object that specifies the destination of an event after Lambda processes it\\. \n*Type*: [EventInvokeDestinationConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokedestinationconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DestinationConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM requires an extra parameter, \"Type\", that does not exist in CloudFormation\\.", + "title": "DestinationConfig" + }, + "MaximumEventAgeInSeconds": { + "description": "The maximum age of a request that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "markdownDescription": "The maximum age of a request that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumEventAgeInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumeventageinseconds) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "title": "MaximumEventAgeInSeconds", + "type": "integer" + }, + "MaximumRetryAttempts": { + "description": "The maximum number of times to retry before the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "markdownDescription": "The maximum number of times to retry before the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventinvokeconfig.html#cfn-lambda-eventinvokeconfig-maximumretryattempts) property of an `AWS::Lambda::EventInvokeConfig` resource\\.", + "title": "MaximumRetryAttempts", + "type": "integer" + } + }, + "title": "EventInvokeConfig", + "type": "object" + }, + "EventInvokeDestinationConfig": { + "additionalProperties": false, + "properties": { + "OnFailure": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeOnFailure" + } + ], + "description": "A destination for events that failed processing\\. \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.", + "markdownDescription": "A destination for events that failed processing\\. \n*Type*: [OnFailure](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-onfailure.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html) property of an `AWS::Lambda::EventInvokeConfig` resource\\. Requires `Type`, an additional SAM\\-only property\\.", + "title": "OnFailure" + }, + "OnSuccess": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeOnSuccess" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "OnSuccess" + } + }, + "title": "EventInvokeDestinationConfig", + "type": "object" + }, + "EventInvokeOnFailure": { + "additionalProperties": false, + "properties": { + "Destination": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is similar to the [`OnFailure`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-destinationconfig-onfailure.html#cfn-lambda-eventinvokeconfig-destinationconfig-onfailure-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "title": "Destination" + }, + "Type": { + "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "enum": [ + "SQS", + "SNS", + "Lambda", + "EventBridge" + ], + "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "title": "Type", + "type": "string" + } + }, + "title": "EventInvokeOnFailure", + "type": "object" + }, + "EventInvokeOnSuccess": { + "additionalProperties": false, + "properties": { + "Destination": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \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#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the destination resource\\. \n*Type*: String \n*Required*: Conditional \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#cfn-lambda-eventinvokeconfig-destinationconfig-onsuccess-destination) property of an `AWS::Lambda::EventInvokeConfig` resource\\. SAM will add any necessary permissions to the auto\\-generated IAM Role associated with this function to access the resource referenced in this property\\. \n*Additional notes*: If the type is Lambda/EventBridge, Destination is required\\.", + "title": "Destination" + }, + "Type": { + "description": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "enum": [ + "SQS", + "SNS", + "Lambda", + "EventBridge" + ], + "markdownDescription": "Type of the resource referenced in the destination\\. Supported types are `SQS`, `SNS`, `Lambda`, and `EventBridge`\\. \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\\. \n*Additional notes*: If the type is SQS/SNS and the `Destination` property is left blank, then the SQS/SNS resource is auto generated by SAM\\. To reference the resource, use `.DestinationQueue` for SQS or `.DestinationTopic` for SNS\\. If the type is Lambda/EventBridge, `Destination` is required\\.", + "title": "Type", + "type": "string" + } + }, + "title": "EventInvokeOnSuccess", + "type": "object" + }, + "EventsScheduleProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "title": "Description" + }, + "Enabled": { + "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "title": "Enabled", + "type": "boolean" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "title": "Name" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Schedule": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "title": "Schedule" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "title": "State" + } + }, + "title": "EventsScheduleProperties", + "type": "object" + }, + "FunctionUrlConfig": { + "additionalProperties": false, + "properties": { + "AuthType": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide* \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.", + "markdownDescription": "The type of authorization for your function URL\\. Set to `AWS_IAM` to use IAM to authorize requests\\. Set to `NONE` for open access\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html) in the *AWS Lambda Developer Guide* \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AuthType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-url.html#cfn-lambda-url-authorizationtype) property of an `AWS::Lambda::Url` resource\\.", + "title": "AuthType" + }, + "Cors": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\. \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.", + "markdownDescription": "The Cross\\-Origin Resource Sharing \\(CORS\\) settings for your function URL\\. \n*Type*: [Cors](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Cors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-url-cors.html) property of an `AWS::Lambda::Url` resource\\.", + "title": "Cors" + } + }, + "required": [ + "AuthType" + ], + "title": "FunctionUrlConfig", + "type": "object" + }, + "Hooks": { + "additionalProperties": false, + "properties": { + "PostTraffic": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Lambda function that is run after traffic shifting\\. \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": "Lambda function that is run after traffic shifting\\. \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": "PostTraffic" + }, + "PreTraffic": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Lambda function that is run before traffic shifting\\. \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": "Lambda function that is run before traffic shifting\\. \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": "PreTraffic" + } + }, + "title": "Hooks", + "type": "object" + }, + "HttpApiAuth": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "The authorization scopes to apply to this API, path, and method\\. \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nScopes listed here will override any scopes applied by the `DefaultAuthorizer` if one exists\\. \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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Authorizer": { + "description": "The `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\. \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific Function\\. To use IAM authorization, specify `AWS_IAM` and specify `true` for `EnableIamAuthorizer` in the `Globals` section of your template\\. \nIf you have specified a Global Authorizer on the API and want to make a specific Function public, override by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "type": "string" + } + }, + "title": "HttpApiAuth", + "type": "object" + }, + "HttpApiEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "HttpApiEvent", + "type": "object" + }, + "HttpApiEventProperties": { + "additionalProperties": false, + "properties": { + "ApiId": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\. \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\. \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\. \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": "Identifier of an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in this template\\. \nIf not defined, a default [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource is created called `ServerlessHttpApi` using a generated OpenApi document containing a union of all paths and methods defined by Api events defined in this template that do not specify an `ApiId`\\. \nThis cannot reference an [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) resource defined in another template\\. \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": "ApiId" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/HttpApiAuth" + } + ], + "description": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\. \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` or setting auth config on an individual path when no `DefaultAuthorizer` is specified\\. \n*Type*: [HttpApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "Method": { + "description": "HTTP method for which this function is invoked\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "HTTP method for which this function is invoked\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Method", + "type": "string" + }, + "Path": { + "description": "Uri path for which this function is invoked\\. Must start with `/`\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Uri path for which this function is invoked\\. Must start with `/`\\. \nIf no `Path` and `Method` are specified, SAM will create a default API path that routes any request that doesn't map to a different endpoint to this Lambda function\\. Only one of these default paths can exist per API\\. \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": "Path", + "type": "string" + }, + "PayloadFormatVersion": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specifies the format of the payload sent to an integration\\. \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: String \n*Required*: No \n*Default*: 2\\.0 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies the format of the payload sent to an integration\\. \nNOTE: PayloadFormatVersion requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: String \n*Required*: No \n*Default*: 2\\.0 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "PayloadFormatVersion" + }, + "RouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\. \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The per\\-route route settings for this HTTP API\\. For more information about route settings, see [AWS::ApiGatewayV2::Stage RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-stage-routesettings.html) in the *API Gateway Developer Guide*\\. \nNote: If RouteSettings are specified in both the HttpApi resource and event source, AWS SAM merges them with the event source properties taking precedence\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "RouteSettings" + }, + "TimeoutInMillis": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "Custom timeout between 50 and 29,000 milliseconds\\. \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: Integer \n*Required*: No \n*Default*: 5000 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Custom timeout between 50 and 29,000 milliseconds\\. \nNOTE: TimeoutInMillis requires SAM to modify your OpenAPI definition, so it only works with inline OpenApi defined in the `DefinitionBody` property\\. \n*Type*: Integer \n*Required*: No \n*Default*: 5000 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "TimeoutInMillis" + } + }, + "title": "HttpApiEventProperties", + "type": "object" + }, + "IoTRuleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "IoTRuleEvent", + "type": "object" + }, + "IoTRuleEventProperties": { + "additionalProperties": false, + "properties": { + "AwsIotSqlVersion": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The version of the SQL rules engine to use when evaluating the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "markdownDescription": "The version of the SQL rules engine to use when evaluating the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AwsIotSqlVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-awsiotsqlversion) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "title": "AwsIotSqlVersion" + }, + "Sql": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "markdownDescription": "The SQL statement used to query the topic\\. For more information, see [AWS IoT SQL Reference](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference) in the *AWS IoT Developer Guide*\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Sql`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-topicrulepayload.html#cfn-iot-topicrule-topicrulepayload-sql) property of an `AWS::IoT::TopicRule TopicRulePayload` resource\\.", + "title": "Sql" + } + }, + "required": [ + "Sql" + ], + "title": "IoTRuleEventProperties", + "type": "object" + }, + "KinesisEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "KinesisEvent", + "type": "object" + }, + "KinesisEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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*: `10000`", + "markdownDescription": "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*: `10000`", + "title": "BatchSize" + }, + "BisectBatchOnFunctionError": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BisectBatchOnFunctionError" + }, + "DestinationConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "An Amazon Simple Queue Service \\(Amazon SQS\\) queue or Amazon Simple Notification Service \\(Amazon SNS\\) topic destination for discarded records\\. \n*Type*: [DestinationConfig](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DestinationConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "DestinationConfig" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "FunctionResponseTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A list of the response types currently applied to the event source mapping\\. For more information, see [Reporting batch item failures](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-batchfailurereporting) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `ReportBatchItemFailures` \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionResponseTypes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "FunctionResponseTypes" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "MaximumRecordAgeInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum age of a record that Lambda sends to a function for processing\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRecordAgeInSeconds`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRecordAgeInSeconds" + }, + "MaximumRetryAttempts": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The maximum number of times to retry when the function returns an error\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MaximumRetryAttempts`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "MaximumRetryAttempts" + }, + "ParallelizationFactor": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The number of batches to process from each shard concurrently\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ParallelizationFactor`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ParallelizationFactor" + }, + "StartingPosition": { + "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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": { + "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" + }, + "Stream": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\. \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 data stream or a stream consumer\\. \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": "Stream" + }, + "TumblingWindowInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The duration, in seconds, of a processing window\\. The valid range is 1 to 900 \\(15 minutes\\)\\. \nFor more information, see [Tumbling windows](https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#streams-tumbling) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TumblingWindowInSeconds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "TumblingWindowInSeconds" + } + }, + "required": [ + "StartingPosition", + "Stream" + ], + "title": "KinesisEventProperties", + "type": "object" + }, + "LambdaAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizerPayloadFormatVersion": { + "anyOf": [ + { + "enum": [ + "1.0", + "2.0" + ], + "type": "string" + }, + { + "type": "number" + } + ], + "description": "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\\.", + "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" + }, + "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\\.", + "title": "EnableSimpleResponses", + "type": "boolean" + }, + "FunctionArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\. \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \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 Amazon Resource Name \\(ARN\\) of the Lambda function that provides authorization for the API\\. \nThis is passed through to the `authorizerUri` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \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": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\. \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\. \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 ARN of the IAM role that has the credentials required for API Gateway to invoke the authorizer function\\. Specify this parameter if your function's resource\\-based policy doesn't grant API Gateway `lambda:InvokeFunction` permission\\. \nThis is passed through to the `authorizerCredentials` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nFor more information, see [Create a Lambda authorizer](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html#http-api-lambda-authorizer.example-create) in the *API Gateway Developer Guide*\\. \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": "FunctionInvokeRole" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/LambdaAuthorizerIdentity" + } + ], + "description": "Specifies an `IdentitySource` in an incoming request for an authorizer\\. \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies an `IdentitySource` in an incoming request for an authorizer\\. \nThis is passed through to the `identitySource` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \n*Type*: [LambdaAuthorizationIdentity](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizationidentity.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Identity" + } + }, + "required": [ + "AuthorizerPayloadFormatVersion", + "FunctionArn" + ], + "title": "LambdaAuthorizer", + "type": "object" + }, + "LambdaAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Context": { + "description": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given context strings to a list of mapping expressions in the format `$context.contextString`\\. \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\\.", + "title": "Context", + "type": "array" + }, + "Headers": { + "description": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the headers to a list of mapping expressions in the format `$request.header.name`\\. \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\\.", + "title": "Headers", + "type": "array" + }, + "QueryStrings": { + "description": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given query strings to a list of mapping expressions in the format `$request.querystring.queryString`\\. \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\\.", + "title": "QueryStrings", + "type": "array" + }, + "ReauthorizeEvery": { + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery", + "type": "integer" + }, + "StageVariables": { + "description": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given stage variables to a list of mapping expressions in the format `$stageVariables.stageVariable`\\. \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\\.", + "title": "StageVariables", + "type": "array" + } + }, + "title": "LambdaAuthorizerIdentity", + "type": "object" + }, + "LambdaRequestAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "FunctionArn": { + "anyOf": [ + { + "type": "object" + }, + { + "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\\.", + "title": "FunctionArn" + }, + "FunctionInvokeRole": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "FunctionInvokeRole", + "type": "string" + }, + "FunctionPayloadType": { + "description": "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\\.", + "enum": [ + "REQUEST" + ], + "markdownDescription": "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\\.", + "title": "FunctionPayloadType", + "type": "string" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/LambdaRequestAuthorizerIdentity" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Identity" + } + }, + "required": [ + "FunctionArn" + ], + "title": "LambdaRequestAuthorizer", + "type": "object" + }, + "LambdaRequestAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Context": { + "description": "Converts the given context strings to the mapping expressions of format `context.contextString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given context strings to the mapping expressions of format `context.contextString`\\. \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\\.", + "title": "Context", + "type": "array" + }, + "Headers": { + "description": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the headers to comma\\-separated string of mapping expressions of format `method.request.header.name`\\. \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\\.", + "title": "Headers", + "type": "array" + }, + "QueryStrings": { + "description": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given query strings to comma\\-separated string of mapping expressions of format `method.request.querystring.queryString`\\. \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\\.", + "title": "QueryStrings", + "type": "array" + }, + "ReauthorizeEvery": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery" + }, + "StageVariables": { + "description": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "Converts the given stage variables to comma\\-separated string of mapping expressions of format `stageVariables.stageVariable`\\. \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\\.", + "title": "StageVariables", + "type": "array" + } + }, + "title": "LambdaRequestAuthorizerIdentity", + "type": "object" + }, + "LambdaTokenAuthorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "FunctionArn": { + "anyOf": [ + { + "type": "object" + }, + { + "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\\.", + "title": "FunctionArn" + }, + "FunctionInvokeRole": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "FunctionInvokeRole", + "type": "string" + }, + "FunctionPayloadType": { + "description": "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\\.", + "enum": [ + "TOKEN" + ], + "markdownDescription": "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\\.", + "title": "FunctionPayloadType", + "type": "string" + }, + "Identity": { + "allOf": [ + { + "$ref": "#/definitions/LambdaTokenAuthorizerIdentity" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Identity" + } + }, + "required": [ + "FunctionArn" + ], + "title": "LambdaTokenAuthorizer", + "type": "object" + }, + "LambdaTokenAuthorizerIdentity": { + "additionalProperties": false, + "properties": { + "Header": { + "description": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the header name for Authorization in the OpenApi definition\\. \n*Type*: String \n*Required*: No \n*Default*: Authorization \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Header", + "type": "string" + }, + "ReauthorizeEvery": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "integer" + } + ], + "description": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The time\\-to\\-live \\(TTL\\) period, in seconds, that specifies how long API Gateway caches authorizer results\\. If you specify a value greater than 0, API Gateway caches the authorizer responses\\. By default, API Gateway sets this property to 300\\. The maximum value is 3600, or 1 hour\\. \n*Type*: Integer \n*Required*: No \n*Default*: 300 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ReauthorizeEvery" + }, + "ValidationExpression": { + "description": "Specify a validation expression for validating the incoming Identity\\. \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": "Specify a validation expression for validating the incoming Identity\\. \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": "ValidationExpression", + "type": "string" + } + }, + "title": "LambdaTokenAuthorizerIdentity", + "type": "object" + }, + "Location": { + "additionalProperties": false, + "properties": { + "ApplicationId": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the application\\. \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 Amazon Resource Name \\(ARN\\) of the application\\. \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": "ApplicationId" + }, + "SemanticVersion": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The semantic version of the application\\. \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 semantic version of the application\\. \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": "SemanticVersion" + } + }, + "required": [ + "ApplicationId", + "SemanticVersion" + ], + "title": "Location", + "type": "object" + }, + "MQEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "MQEvent", + "type": "object" + }, + "MQEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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*: `10000`", + "markdownDescription": "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*: `10000`", + "title": "BatchSize" + }, + "Broker": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon MQ broker\\. \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 MQ broker\\. \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": "Broker" + }, + "Enabled": { + "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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "Queues": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Amazon MQ broker destination queue to consume\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The name of the Amazon MQ broker destination queue to consume\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Queues`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Queues" + }, + "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't included 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't 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't included 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't have an AWS CloudFormation equivalent\\.", + "title": "SecretsManagerKmsKeyId", + "type": "string" + }, + "SourceAccessConfigurations": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol or vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\. \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+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` 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 vitual host\\. Specify this using the [SourceAccessConfigurations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html) data type\\. \nFor the `MQ` event source type, the only valid configuration types are `BASIC_AUTH` and `VIRTUAL_HOST`\\. \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+ **`VIRTUAL_HOST`** \u2013 The name of the virtual host in your RabbitMQ broker\\. Lambda will use this Rabbit MQ's host as the event source\\. Only one object of type `VIRTUAL_HOST` 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" + } + }, + "required": [ + "Broker", + "Queues", + "SourceAccessConfigurations" + ], + "title": "MQEventProperties", + "type": "object" + }, + "MSKEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "MSKEvent", + "type": "object" + }, + "MSKEventProperties": { + "additionalProperties": false, + "properties": { + "ConsumerGroupId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AmazonManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ConsumerGroupId" + }, + "FilterCriteria": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria that determines whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "MaximumBatchingWindowInSeconds": { + "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" + }, + "SourceAccessConfigurations": { + "$ref": "#/definitions/PassThroughProp" + }, + "StartingPosition": { + "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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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*Valid values*: `AT_TIMESTAMP` \\| `LATEST` \\| `TRIM_HORIZON` \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": { + "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" + }, + "Stream": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the data stream or a stream consumer\\. \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 data stream or a stream consumer\\. \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": "Stream" + }, + "Topics": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Topics" + } + }, + "required": [ + "StartingPosition", + "Stream", + "Topics" + ], + "title": "MSKEventProperties", + "type": "object" + }, + "OAuth2Authorizer": { + "additionalProperties": false, + "properties": { + "AuthorizationScopes": { + "description": "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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "IdentitySource": { + "description": "Identity source expression for this 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\\.", + "markdownDescription": "Identity source expression for this 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\\.", + "title": "IdentitySource", + "type": "string" + }, + "JwtConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "JWT configuration for this authorizer\\. \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "JWT configuration for this authorizer\\. \nThis is passed through to the `jwtConfiguration` section of an `x-amazon-apigateway-authorizer` in the `securitySchemes` section of an OpenAPI definition\\. \nUse lowercase `issuer` and `audience` properties with [AWS::Serverless::HttpApi](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-httpapi.html) and uppercase `Issuer` and `Audience` properties with [AWS::ApiGatewayV2::Authorizer](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-authorizer-jwtconfiguration.html)\\.\n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "JwtConfiguration" + } + }, + "title": "OAuth2Authorizer", + "type": "object" + }, + "Parameter": { + "additionalProperties": false, + "properties": { + "AllowedPattern": { + "type": "string" + }, + "AllowedValues": { + "type": "array" + }, + "ConstraintDescription": { + "type": "string" + }, + "Default": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "MaxLength": { + "type": "string" + }, + "MaxValue": { + "type": "string" + }, + "MinLength": { + "type": "string" + }, + "MinValue": { + "type": "string" + }, + "NoEcho": { + "type": [ + "string", + "boolean" + ] + }, + "Type": { + "enum": [ + "String", + "Number", + "List", + "CommaDelimitedList", + "AWS::EC2::AvailabilityZone::Name", + "AWS::EC2::Image::Id", + "AWS::EC2::Instance::Id", + "AWS::EC2::KeyPair::KeyName", + "AWS::EC2::SecurityGroup::GroupName", + "AWS::EC2::SecurityGroup::Id", + "AWS::EC2::Subnet::Id", + "AWS::EC2::Volume::Id", + "AWS::EC2::VPC::Id", + "AWS::Route53::HostedZone::Id", + "List", + "List", + "List", + "List", + "List", + "List", + "List", + "List", + "List", + "List", + "AWS::SSM::Parameter::Name", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>", + "AWS::SSM::Parameter::Value>" + ], + "type": "string" + } + }, + "required": [ + "Type" + ], + "type": "object" + }, + "PassThroughProp": { + "title": "PassThroughProp" + }, + "PrimaryKey": { + "additionalProperties": false, + "properties": { + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Attribute name of the primary key\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\. \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.", + "markdownDescription": "Attribute name of the primary key\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\. \n*Additional notes*: This property is also passed to the [AttributeName](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html#aws-properties-dynamodb-keyschema-attributename) property of an `AWS::DynamoDB::Table KeySchema` data type\\.", + "title": "Name" + }, + "Type": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The data type for the primary key\\. \n*Valid values*: `String`, `Number`, `Binary` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.", + "markdownDescription": "The data type for the primary key\\. \n*Valid values*: `String`, `Number`, `Binary` \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AttributeType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-attributedef.html#cfn-dynamodb-attributedef-attributename-attributetype) property of the `AWS::DynamoDB::Table` `AttributeDefinition` data type\\.", + "title": "Type" + } + }, + "required": [ + "Name", + "Type" + ], + "title": "PrimaryKey", + "type": "object" + }, + "Ref": { + "additionalProperties": false, + "properties": { + "Ref": { + "title": "Ref", + "type": "string" + } + }, + "required": [ + "Ref" + ], + "title": "Ref", + "type": "object" + }, + "RequestModel": { + "additionalProperties": false, + "properties": { + "Model": { + "description": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.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\\.", + "markdownDescription": "Name of a model defined in the Models property of the [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.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\\.", + "title": "Model", + "type": "string" + }, + "Required": { + "description": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\. \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": "Adds a `required` property in the parameters section of the OpenApi definition for the given API endpoint\\. \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": "Required", + "type": "boolean" + }, + "ValidateBody": { + "description": "Specifies whether API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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 API Gateway uses the `Model` to validate the request body\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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": "ValidateBody", + "type": "boolean" + }, + "ValidateParameters": { + "description": "Specifies whether API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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 API Gateway uses the `Model` to validate request path parameters, query strings, and headers\\. For more information, see [Enable request validation in API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html) in the *API Gateway Developer Guide*\\. \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": "ValidateParameters", + "type": "boolean" + } + }, + "required": [ + "Model" + ], + "title": "RequestModel", + "type": "object" + }, + "RequestParameters": { + "additionalProperties": false, + "properties": { + "Caching": { + "description": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Adds `cacheKeyParameters` section to the API Gateway OpenApi definition \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Caching", + "type": "boolean" + }, + "Required": { + "description": "This field specifies whether a parameter is required \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "This field specifies whether a parameter is required \n*Type*: Boolean \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Required", + "type": "boolean" + } + }, + "title": "RequestParameters", + "type": "object" + }, + "ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" + }, + "S3Event": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Properties", + "Type" + ], + "title": "S3Event", + "type": "object" + }, + "S3EventProperties": { + "additionalProperties": false, + "properties": { + "Bucket": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "S3 bucket name\\. This bucket must exist in the same template\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template", + "markdownDescription": "S3 bucket name\\. This bucket must exist in the same template\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`BucketName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name) property of an `AWS::S3::Bucket` resource\\. This is a required field in SAM\\. This field only accepts a reference to the S3 bucket created in this template", + "title": "Bucket" + }, + "Events": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\. \n*Type*: String \\| List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "markdownDescription": "The Amazon S3 bucket event for which to invoke the Lambda function\\. See [Amazon S3 supported event types](http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#supported-notification-event-types) for a list of valid values\\. \n*Type*: String \\| List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Event`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfig-lambdaconfig.html#cfn-s3-bucket-notificationconfig-lambdaconfig-event) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "title": "Events" + }, + "Filter": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\. \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "markdownDescription": "The filtering rules that determine which Amazon S3 objects invoke the Lambda function\\. For information about Amazon S3 key name filtering, see [Configuring Amazon S3 Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon Simple Storage Service User Guide*\\. \n*Type*: [NotificationFilter](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Filter`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-notificationconfiguration-config-filter.html) property of the `AWS::S3::Bucket` `LambdaConfiguration` data type\\.", + "title": "Filter" + } + }, + "required": [ + "Bucket", + "Events" + ], + "title": "S3EventProperties", + "type": "object" + }, + "SNSEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Properties", + "Type" + ], + "title": "SNSEvent", + "type": "object" + }, + "SNSEventProperties": { + "additionalProperties": false, + "properties": { + "FilterPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "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" + }, + "Region": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, CloudFormation uses the region of the caller as the default\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.", + "markdownDescription": "For cross\\-region subscriptions, the region in which the topic resides\\. \nIf no region is specified, CloudFormation uses the region of the caller as the default\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Region`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#cfn-sns-subscription-region) property of an `AWS::SNS::Subscription` resource\\.", + "title": "Region" + }, + "SqsSubscription": { + "anyOf": [ + { + "type": "boolean" + }, + { + "$ref": "#/definitions/SqsSubscription" + } + ], + "description": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\. \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Set this property to true, or specify `SqsSubscriptionObject` to enable batching SNS topic notifications in an SQS queue\\. Setting this property to `true` creates a new SQS queue, whereas specifying a `SqsSubscriptionObject` uses an existing SQS queue\\. \n*Type*: Boolean \\| [SqsSubscriptionObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-sqssubscriptionobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "SqsSubscription" + }, + "Topic": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the topic to subscribe to\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.", + "markdownDescription": "The ARN of the topic to subscribe to\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TopicArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html#topicarn) property of an `AWS::SNS::Subscription` resource\\.", + "title": "Topic" + } + }, + "required": [ + "Topic" + ], + "title": "SNSEventProperties", + "type": "object" + }, + "SQSEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "SQSEvent", + "type": "object" + }, + "SQSEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*Default*: 10 \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*: `10000`", + "markdownDescription": "The maximum number of items to retrieve in a single batch\\. \n*Type*: Integer \n*Required*: No \n*Default*: 10 \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*: `10000`", + "title": "BatchSize" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "MaximumBatchingWindowInSeconds": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum amount of time, in seconds, to gather records before invoking the function\\. \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, in seconds, to gather records before invoking the function\\. \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" + }, + "Queue": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the queue\\. \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 ARN of the queue\\. \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": "Queue" + }, + "ScalingConfig": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Queue" + ], + "title": "SQSEventProperties", + "type": "object" + }, + "ScheduleEventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "A description of the rule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-description) property of an `AWS::Events::Rule` resource\\.", + "title": "Description" + }, + "Enabled": { + "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "title": "Enabled", + "type": "boolean" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The name of the rule\\. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the rule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-name) property of an `AWS::Events::Rule` resource\\.", + "title": "Name" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Schedule": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the rule runs\\. For more information, see [Schedule Expressions for Rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-scheduleexpression) property of an `AWS::Events::Rule` resource\\.", + "title": "Schedule" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "title": "State" + }, + "Target": { + "$ref": "#/definitions/ScheduleTarget" + } + }, + "title": "ScheduleEventProperties", + "type": "object" + }, + "ScheduleTarget": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Id" + ], + "title": "ScheduleTarget", + "type": "object" + }, + "SelfManagedKafkaEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "SelfManagedKafkaEvent", + "type": "object" + }, + "SelfManagedKafkaEventProperties": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\. \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*: `10000`", + "markdownDescription": "The maximum number of records in each batch that Lambda pulls from your stream and sends to your function\\. \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*: `10000`", + "title": "BatchSize" + }, + "ConsumerGroupId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "A string that configures how events will be read from Kafka topics\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SelfManagedKafkaConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "ConsumerGroupId" + }, + "Enabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Disables the event source mapping to pause polling and invocation\\. \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": "Disables the event source mapping to pause polling and invocation\\. \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": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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": "A object that defines the criteria to determine whether Lambda should process an event\\. For more information, see [AWS 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" + }, + "KafkaBootstrapServers": { + "description": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx` \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of bootstrap servers for your Kafka brokers\\. Include the port, for example `broker.example.com:xxxx` \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\\.", + "title": "KafkaBootstrapServers", + "type": "array" + }, + "SourceAccessConfigurations": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of the authentication protocol, VPC components, or virtual host to secure and define your event source\\. \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) \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, VPC components, or virtual host to secure and define your event source\\. \n*Type*: [SourceAccessConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations) \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" + }, + "Topics": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "markdownDescription": "The name of the Kafka topic\\. \n*Type*: List \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Topics`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics) property of an `AWS::Lambda::EventSourceMapping` resource\\.", + "title": "Topics" + } + }, + "required": [ + "SourceAccessConfigurations", + "Topics" + ], + "title": "SelfManagedKafkaEventProperties", + "type": "object" + }, + "SqsSubscription": { + "additionalProperties": false, + "properties": { + "BatchSize": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The maximum number of items to retrieve in a single batch for the SQS queue\\. \n*Type*: String \n*Required*: No \n*Default*: 10 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The maximum number of items to retrieve in a single batch for the SQS queue\\. \n*Type*: String \n*Required*: No \n*Default*: 10 \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "BatchSize" + }, + "Enabled": { + "description": "Disables the SQS event source mapping to pause polling and invocation\\. \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": "Disables the SQS event source mapping to pause polling and invocation\\. \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\\.", + "title": "Enabled", + "type": "boolean" + }, + "QueueArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specify an existing SQS queue arn\\. \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 an existing SQS queue arn\\. \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": "QueueArn" + }, + "QueuePolicyLogicalId": { + "description": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\. \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": "Give a custom logicalId name for the [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html) resource\\. \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": "QueuePolicyLogicalId", + "type": "string" + }, + "QueueUrl": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specify the queue URL associated with the `QueueArn` property\\. \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 queue URL associated with the `QueueArn` property\\. \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": "QueueUrl" + } + }, + "required": [ + "QueueArn", + "QueueUrl" + ], + "title": "SqsSubscription", + "type": "object" + }, + "Tag": { + "additionalProperties": false, + "properties": { + "Key": { + "type": "string" + }, + "Value": { + "type": "string" + } + }, + "required": [ + "Key", + "Value" + ], + "type": "object" + }, + "UsagePlan": { + "additionalProperties": false, + "properties": { + "CreateUsagePlan": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "PER_API", + "SHARED", + "NONE" + ], + "type": "string" + } + ], + "description": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\. \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `UsagePlan`, `ApiKey`, and `UsagePlanKey`, respectively\\. \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\. \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\. \n*Valid values*: `PER_API`, `SHARED`, and `NONE` \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": "Determines how this usage plan is configured\\. Valid values are `PER_API`, `SHARED`, and `NONE`\\. \n`PER_API` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are specific to this API\\. These resources have logical IDs of `UsagePlan`, `ApiKey`, and `UsagePlanKey`, respectively\\. \n`SHARED` creates [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html), and [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html) resources that are shared across any API that also has `CreateUsagePlan: SHARED` in the same AWS SAM template\\. These resources have logical IDs of `ServerlessUsagePlan`, `ServerlessApiKey`, and `ServerlessUsagePlanKey`, respectively\\. If you use this option, we recommend that you add additional configuration for this usage plan on only one API resource to avoid conflicting definitions and an uncertain state\\. \n`NONE` disables the creation or association of a usage plan with this API\\. This is only necessary if `SHARED` or `PER_API` is specified in the [Globals section of the AWS SAM template](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-template-anatomy-globals.html)\\. \n*Valid values*: `PER_API`, `SHARED`, and `NONE` \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": "CreateUsagePlan" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "A description of the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-description) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Description" + }, + "Quota": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures the number of requests that users can make within a given interval\\. \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "Configures the number of requests that users can make within a given interval\\. \n*Type*: [QuotaSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Quota`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-quota) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Quota" + }, + "Tags": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "An array of arbitrary tags \\(key\\-value pairs\\) to associate with the usage plan\\. \nThis property uses the [CloudFormation Tag Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-tags) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Tags" + }, + "Throttle": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "Configures the overall request rate \\(average requests per second\\) and burst capacity\\. \n*Type*: [ThrottleSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Throttle`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-throttle) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "Throttle" + }, + "UsagePlanName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "markdownDescription": "A name for the usage plan\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`UsagePlanName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html#cfn-apigateway-usageplan-usageplanname) property of an `AWS::ApiGateway::UsagePlan` resource\\.", + "title": "UsagePlanName" + } + }, + "required": [ + "CreateUsagePlan" + ], + "title": "UsagePlan", + "type": "object" + }, + "__main____Globals": { + "additionalProperties": false, + "properties": { + "Api": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Globals" + }, + "Function": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Globals" + }, + "HttpApi": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Globals" + }, + "SimpleTable": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Globals" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Auth": { + "additionalProperties": false, + "properties": { + "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\\.", + "title": "AddDefaultAuthorizerToCorsPreflight", + "type": "boolean" + }, + "ApiKeyRequired": { + "description": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \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": "If set to true then an API key is required for all API events\\. For more information about API keys see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \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": "ApiKeyRequired", + "type": "boolean" + }, + "Authorizers": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/CognitoAuthorizer" + }, + { + "$ref": "#/definitions/LambdaTokenAuthorizer" + }, + { + "$ref": "#/definitions/LambdaRequestAuthorizer" + } + ] + }, + "description": "The authorizer used to control access to your API Gateway API\\. \nFor more information, 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*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.", + "markdownDescription": "The authorizer used to control access to your API Gateway API\\. \nFor more information, 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*: [CognitoAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-cognitoauthorizer.html) \\| [LambdaTokenAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdatokenauthorizer.html) \\| [LambdaRequestAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-lambdarequestauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: SAM adds the Authorizers to the OpenApi definition of an Api\\.", + "title": "Authorizers", + "type": "object" + }, + "DefaultAuthorizer": { + "description": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\. \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default\\. \nIf the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to `AWS_IAM`, otherwise an error will result\\.\n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DefaultAuthorizer", + "type": "string" + }, + "InvokeRole": { + "description": "Sets integration credentials for all resources and methods to this value\\. \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\. \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn` \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Sets integration credentials for all resources and methods to this value\\. \n`CALLER_CREDENTIALS` maps to `arn:aws:iam::*:user/*`, which uses the caller credentials to invoke the endpoint\\. \n*Valid values*: `CALLER_CREDENTIALS`, `NONE`, `IAMRoleArn` \n*Type*: String \n*Required*: No \n*Default*: `CALLER_CREDENTIALS` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "InvokeRole", + "type": "string" + }, + "ResourcePolicy": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__ResourcePolicy" + } + ], + "description": "Configure Resource Policy for all methods and paths on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.", + "markdownDescription": "Configure Resource Policy for all methods and paths on an API\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: This setting can also be defined on individual `AWS::Serverless::Function` using the [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html)\\. This is required for APIs with `EndpointConfiguration: PRIVATE`\\.", + "title": "ResourcePolicy" + }, + "UsagePlan": { + "allOf": [ + { + "$ref": "#/definitions/UsagePlan" + } + ], + "description": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. 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*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a usage plan associated with this API\\. For more information about usage plans see [Create and Use Usage Plans with API Keys](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) in the *API Gateway Developer Guide*\\. \nThis AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html)\\. For information about this scenario, see [UsagePlan property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-usage-plan)\\. 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*: [ApiUsagePlan](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apiusageplan.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "UsagePlan" + } + }, + "title": "Auth", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__DefinitionUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-bucket) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "title": "Bucket" + }, + "Key": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "markdownDescription": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-key) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "title": "Key" + }, + "Version": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "markdownDescription": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-restapi-s3location.html#cfn-apigateway-restapi-s3location-version) property of the `AWS::ApiGateway::RestApi` `S3Location` data type\\.", + "title": "Version" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "DefinitionUri", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Domain": { + "additionalProperties": false, + "properties": { + "BasePath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.", + "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`BasePath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-basepathmapping.html#cfn-apigateway-basepathmapping-basepath) property of an `AWS::ApiGateway::BasePathMapping` resource\\. AWS SAM creates multiple `AWS::ApiGateway::BasePathMapping` resources, one per `BasePath` specified in this property\\.", + "title": "BasePath" + }, + "CertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\. \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) property of an `AWS::ApiGateway::DomainName` resource\\. If `EndpointConfiguration` is set to `REGIONAL` \\(the default value\\), `CertificateArn` maps to [RegionalCertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-regionalcertificatearn) in `AWS::ApiGateway::DomainName`\\. If the `EndpointConfiguration` is set to `EDGE`, `CertificateArn` maps to [CertificateArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-certificatearn) in `AWS::ApiGateway::DomainName`\\. \n*Additional notes*: For an `EDGE` endpoint, you must create the certificate in the `us-east-1` AWS Region\\.", + "title": "CertificateArn" + }, + "DomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html) resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html#sam-specification-generated-resources-api-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-domainname) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "DomainName" + }, + "EndpointConfiguration": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "REGIONAL", + "EDGE" + ], + "type": "string" + } + ], + "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \n*Valid values*: `REGIONAL` or `EDGE` \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \n*Valid values*: `REGIONAL` or `EDGE` \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EndpointConfiguration" + }, + "MutualTlsAuthentication": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The mutual Transport Layer Security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-mutualtlsauthentication) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "MutualTlsAuthentication" + }, + "NormalizeBasePath": { + "description": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\. \nUse `NormalizeBasePath` with the `BasePath` property\\. \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": "Indicates whether non\\-alphanumeric characters are allowed in basepaths defined by the `BasePath` property\\. When set to `True`, non\\-alphanumeric characters are removed from basepaths\\. \nUse `NormalizeBasePath` with the `BasePath` property\\. \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\\.", + "title": "NormalizeBasePath", + "type": "boolean" + }, + "OwnershipVerificationCertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-ownershipverificationcertificatearn) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "OwnershipVerificationCertificateArn" + }, + "Route53": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Route53" + } + ], + "description": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Route53" + }, + "SecurityPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The TLS version plus cipher suite for this domain name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.", + "markdownDescription": "The TLS version plus cipher suite for this domain name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-domainname.html#cfn-apigateway-domainname-securitypolicy) property of an `AWS::ApiGateway::DomainName` resource\\.", + "title": "SecurityPolicy" + } + }, + "required": [ + "CertificateArn", + "DomainName" + ], + "title": "Domain", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Globals": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AccessLogSetting" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Auth" + }, + "BinaryMediaTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BinaryMediaTypes" + }, + "CacheClusterEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterEnabled" + }, + "CacheClusterSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterSize" + }, + "CanarySetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CanarySetting" + }, + "Cors": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + }, + { + "$ref": "#/definitions/Cors" + } + ], + "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Cors" + }, + "DefinitionUri": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "DefinitionUri" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "EndpointConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "markdownDescription": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "title": "EndpointConfiguration" + }, + "GatewayResponses": { + "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "GatewayResponses", + "type": "object" + }, + "MethodSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "MethodSettings" + }, + "MinimumCompressionSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "MinimumCompressionSize" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Name" + }, + "OpenApiVersion": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "OpenApiVersion" + }, + "TracingEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "TracingEnabled" + }, + "Variables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "Variables" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Properties": { + "additionalProperties": false, + "properties": { + "AccessLogSetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AccessLogSetting" + }, + "ApiKeySourceType": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "ApiKeySourceType" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Auth" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Auth" + }, + "BinaryMediaTypes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "BinaryMediaTypes" + }, + "CacheClusterEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether caching is enabled for the stage\\. To cache responses, you must also set `CachingEnabled` to `true` under `MethodSettings`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclusterenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterEnabled" + }, + "CacheClusterSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "The stage's cache cluster size\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CacheClusterSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-cacheclustersize) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CacheClusterSize" + }, + "CanarySetting": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configure a canary setting to a stage of a regular deployment\\. \n*Type*: [CanarySetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CanarySetting`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-canarysetting) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "CanarySetting" + }, + "Cors": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + }, + { + "$ref": "#/definitions/Cors" + } + ], + "description": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manage Cross\\-origin resource sharing \\(CORS\\) for all your API Gateway APIs\\. Specify the domain to allow as a string or specify a dictionary with additional Cors configuration\\. NOTE: CORS requires AWS SAM to modify your OpenAPI definition\\. So, it works only if inline OpenApi is defined with DefinitionBody\\. \nFor more information about CORS, see [Enable CORS for an API Gateway REST API Resource](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html) in the *API Gateway Developer Guide*\\. \n*Type*: String \\| [CorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-corsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Cors" + }, + "DefinitionBody": { + "description": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.", + "markdownDescription": "OpenAPI specification that describes your API\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\. If certain properties are provided, content may be inserted or modified into the DefinitionBody before being passed to CloudFormation\\. Properties include `Auth`, `BinaryMediaTypes`, `Cors`, `GatewayResponses`, `Models`, and an `EventSource` of type Api for a corresponding `AWS::Serverless::Function`\\.", + "title": "DefinitionBody", + "type": "object" + }, + "DefinitionUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__DefinitionUri" + } + ], + "description": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "Amazon S3 Uri, local file path, or location object of the the OpenAPI document defining the API\\. The Amazon S3 object this property references must be a valid OpenAPI file\\. If neither `DefinitionUri` nor `DefinitionBody` are specified, SAM will generate a `DefinitionBody` for you based on your template configuration\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi files referenced by `DefinitionUri`\\. Use instead the `DefinitionBody` property with the [Include Transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html) to import an OpenApi definition into the template\\. \n*Type*: String \\| [ApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-apidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-bodys3location) property of an `AWS::ApiGateway::RestApi` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "DefinitionUri" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the Api resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "A description of the Api resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-description) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Description" + }, + "DisableExecuteApiEndpoint": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint\\. By default, clients can invoke your API with the default `https://{api_id}.execute-api.{region}.amazonaws.com`\\. To require that clients use a custom domain name to invoke your API, specify `True`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-disableexecuteapiendpoint) property of an `AWS::ApiGateway::RestApi` resource\\. It is passed directly to the [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-endpoint-configuration.html) property of an `x-amazon-apigateway-endpoint-configuration` extension, which gets added to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-body) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "DisableExecuteApiEndpoint" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway API\\. \n*Type*: [DomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-domainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "EndpointConfiguration": { + "anyOf": [ + { + "type": "object" + }, + { + "$ref": "#/definitions/EndpointConfiguration" + } + ], + "description": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "markdownDescription": "The endpoint type of a REST API\\. \n*Type*: [EndpointConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-api-endpointconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`EndpointConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-endpointconfiguration) property of an `AWS::ApiGateway::RestApi` resource\\. The nested configuration properties are named differently\\.", + "title": "EndpointConfiguration" + }, + "FailOnWarnings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Specifies whether to roll back the API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-failonwarnings) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "FailOnWarnings" + }, + "GatewayResponses": { + "description": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures Gateway Responses for an API\\. Gateway Responses are responses returned by API Gateway, either directly or through the use of Lambda Authorizers\\. For more information, see the documentation for the [Api Gateway OpenApi extension for Gateway Responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-gateway-responses.html)\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "GatewayResponses", + "type": "object" + }, + "MethodSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Configures all settings for API stage including Logging, Metrics, CacheTTL, Throttling\\. \n*Type*: List of [ MethodSetting](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-stage-methodsetting.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MethodSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-methodsettings) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "MethodSettings" + }, + "MinimumCompressionSize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "Allow compression of response bodies based on client's Accept\\-Encoding header\\. Compression is triggered when response body size is greater than or equal to your configured threshold\\. The maximum body size threshold is 10 MB \\(10,485,760 Bytes\\)\\. \\- The following compression types are supported: gzip, deflate, and identity\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MinimumCompressionSize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-minimumcompressionsize) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "MinimumCompressionSize" + }, + "Mode": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\. \n*Valid values*: `overwrite` or `merge` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "This property applies only when you use OpenAPI to define your REST API\\. The `Mode` determines how API Gateway handles resource updates\\. For more information, see [Mode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of the [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html) resource type\\. \n*Valid values*: `overwrite` or `merge` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Mode`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-mode) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Mode" + }, + "Models": { + "description": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The schemas to be used by your API methods\\. These schemas can be described using JSON or YAML\\. See the Examples section at the bottom of this page for example models\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Models", + "type": "object" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "markdownDescription": "A name for the API Gateway RestApi resource \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html#cfn-apigateway-restapi-name) property of an `AWS::ApiGateway::RestApi` resource\\.", + "title": "Name" + }, + "OpenApiVersion": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + } + ], + "description": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "Version of OpenApi to use\\. This can either be `2.0` for the Swagger specification, or one of the OpenApi 3\\.0 versions, like `3.0.1`\\. For more information about OpenAPI, see the [OpenAPI Specification](https://swagger.io/specification/)\\. \n AWS SAM creates a stage called `Stage` by default\\. Setting this property to any valid value will prevent the creation of the stage `Stage`\\. \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": "OpenApiVersion" + }, + "StageName": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\. \nTo reference the stage resource, use `.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. 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*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.", + "markdownDescription": "The name of the stage, which API Gateway uses as the first path segment in the invoke Uniform Resource Identifier \\(URI\\)\\. \nTo reference the stage resource, use `.Stage`\\. For more information about referencing resources generated when an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-api.html#sam-resource-api) resource is specified, see [AWS CloudFormation resources generated when AWS::Serverless::Api is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-api.html)\\. 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*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-stagename) property of an `AWS::ApiGateway::Stage` resource\\. It is required in SAM, but not required in API Gateway \n*Additional notes*: The Implicit API has a stage name of \"Prod\"\\.", + "title": "StageName" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this API Gateway stage\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-apigateway-stage.html#cfn-apigateway-stage-tags) property of an `AWS::ApiGateway::Stage` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "title": "Tags", + "type": "object" + }, + "TracingEnabled": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "Indicates whether active tracing with X\\-Ray is enabled for the stage\\. For more information about X\\-Ray, see [Tracing user requests to REST APIs using X\\-Ray](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-xray.html) in the *API Gateway Developer Guide*\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingEnabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-tracingenabled) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "TracingEnabled" + }, + "Variables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "markdownDescription": "A map \\(string to string\\) that defines the stage variables, where the variable name is the key and the variable value is the value\\. Variable names are limited to alphanumeric characters\\. Values must match the following regular expression: `[A-Za-z0-9._~:/?#&=,-]+`\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Variables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables) property of an `AWS::ApiGateway::Stage` resource\\.", + "title": "Variables" + } + }, + "required": [ + "StageName" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Api" + ], + "title": "Type", + "type": "string" + }, + "UpdatePolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__ResourcePolicy": { + "additionalProperties": false, + "properties": { + "AwsAccountBlacklist": { + "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountBlacklist", + "type": "array" + }, + "AwsAccountWhitelist": { + "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountWhitelist", + "type": "array" + }, + "CustomStatements": { + "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "CustomStatements", + "type": "array" + }, + "IntrinsicVpcBlacklist": { + "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpcBlacklist", + "type": "array" + }, + "IntrinsicVpcWhitelist": { + "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpcWhitelist", + "type": "array" + }, + "IntrinsicVpceBlacklist": { + "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpceBlacklist", + "type": "array" + }, + "IntrinsicVpceWhitelist": { + "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpceWhitelist", + "type": "array" + }, + "IpRangeBlacklist": { + "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IpRangeBlacklist", + "type": "array" + }, + "IpRangeWhitelist": { + "description": "The IP addresses or address ranges to allow\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", + "title": "IpRangeWhitelist", + "type": "array" + }, + "SourceVpcBlacklist": { + "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "SourceVpcBlacklist", + "type": "array" + }, + "SourceVpcWhitelist": { + "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "title": "SourceVpcWhitelist", + "type": "array" + } + }, + "title": "ResourcePolicy", + "type": "object" + }, + "samtranslator__schema__aws_serverless_api__Route53": { + "additionalProperties": false, + "properties": { + "DistributionDomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "markdownDescription": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "title": "DistributionDomainName" + }, + "EvaluateTargetHealth": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "title": "EvaluateTargetHealth" + }, + "HostedZoneId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneId" + }, + "HostedZoneName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneName" + }, + "IpV6": { + "description": "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\\.", + "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" + } + }, + "title": "Route53", + "type": "object" + }, + "samtranslator__schema__aws_serverless_application__Properties": { + "additionalProperties": false, + "properties": { + "Location": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/Location" + } + ], + "description": "Template URL, file path, or location object of a nested application\\. \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\. \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.", + "markdownDescription": "Template URL, file path, or location object of a nested application\\. \nIf a template URL is provided, it must follow the format specified in the [CloudFormation TemplateUrl documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) and contain a valid CloudFormation or SAM template\\. An [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) can be used to specify an application that has been published to the [AWS Serverless Application Repository](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/what-is-serverlessrepo.html)\\. \nIf a local file path is provided, the template must go through the workflow that includes the `sam deploy` or `sam package` command, in order for the application to be transformed properly\\. \n*Type*: String \\| [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`TemplateURL`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-templateurl) property of an `AWS::CloudFormation::Stack` resource\\. The CloudFormation version does not take an [ApplicationLocationObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-application-applicationlocationobject.html) to retrieve an application from the AWS Serverless Application Repository\\.", + "title": "Location" + }, + "NotificationARNs": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A list of existing Amazon SNS topics where notifications about stack events are sent\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.", + "markdownDescription": "A list of existing Amazon SNS topics where notifications about stack events are sent\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`NotificationARNs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-notificationarns) property of an `AWS::CloudFormation::Stack` resource\\.", + "title": "NotificationARNs" + }, + "Parameters": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Application parameter values\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.", + "markdownDescription": "Application parameter values\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stack.html#cfn-cloudformation-stack-parameters) property of an `AWS::CloudFormation::Stack` resource\\.", + "title": "Parameters" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\. \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-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this application\\. Keys and values are limited to alphanumeric characters\\. Keys can be 1 to 127 Unicode characters in length and cannot be prefixed with aws:\\. Values can be 1 to 255 Unicode characters in length\\. \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-properties-stack.html#cfn-cloudformation-stack-tags) property of an `AWS::CloudFormation::Stack` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\. When the stack is created, SAM will automatically add a `lambda:createdBy:SAM` tag to this application\\. In addition, if this application is from the AWS Serverless Application Repository, then SAM will also automatically the two additional tags `serverlessrepo:applicationId:ApplicationId` and `serverlessrepo:semanticVersion:SemanticVersion`\\.", + "title": "Tags", + "type": "object" + }, + "TimeoutInMinutes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "TimeoutInMinutes" + } + }, + "required": [ + "Location" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_application__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Application" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_connector__Properties": { + "additionalProperties": false, + "properties": { + "Destination": { + "allOf": [ + { + "$ref": "#/definitions/ResourceReference" + } + ], + "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\\.", + "title": "Destination" + }, + "Permissions": { + "description": "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\\.", + "items": { + "enum": [ + "Read", + "Write" + ], + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "Permissions", + "type": "array" + }, + "Source": { + "allOf": [ + { + "$ref": "#/definitions/ResourceReference" + } + ], + "description": "The source 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 source 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\\.", + "title": "Source" + } + }, + "required": [ + "Source", + "Destination", + "Permissions" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_connector__Resource": { + "additionalProperties": false, + "properties": { + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Connector" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ApiEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ApiEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ApiEventProperties": { + "additionalProperties": false, + "properties": { + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/ApiAuth" + } + ], + "description": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\. \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Auth configuration for this specific Api\\+Path\\+Method\\. \nUseful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified or overriding the default `ApiKeyRequired` setting\\. \n*Type*: [ApiFunctionAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "Method": { + "description": "HTTP method for which this function is invoked\\. \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": "HTTP method for which this function is invoked\\. \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": "Method", + "type": "string" + }, + "Path": { + "description": "Uri path for which this function is invoked\\. Must start with `/`\\. \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": "Uri path for which this function is invoked\\. Must start with `/`\\. \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": "Path", + "type": "string" + }, + "RequestModel": { + "allOf": [ + { + "$ref": "#/definitions/RequestModel" + } + ], + "description": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\. \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Request model to use for this specific Api\\+Path\\+Method\\. This should reference the name of a model specified in the `Models` section of an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource\\. \n*Type*: [RequestModel](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestmodel.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "RequestModel" + }, + "RequestParameters": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/RequestParameters" + } + ], + "description": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\. \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\. \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Request parameters configuration for this specific Api\\+Path\\+Method\\. All parameter names must start with `method.request` and must be limited to `method.request.header`, `method.request.querystring`, or `method.request.path`\\. \nIf a parameter is a string and not a Function Request Parameter Object, then `Required` and `Caching` will default to false\\. \n*Type*: String \\| [RequestParameter](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-requestparameter.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "RequestParameters" + }, + "RestApiId": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/Ref" + } + ], + "description": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\. \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": "Identifier of a RestApi resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis cannot reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource defined in another template\\. \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": "RestApiId" + } + }, + "required": [ + "Method", + "Path" + ], + "title": "ApiEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__CloudWatchEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CloudWatchEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__CloudWatchEventProperties": { + "additionalProperties": false, + "properties": { + "Enabled": { + "description": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "markdownDescription": "Indicates whether the rule is enabled\\. \nTo disable the rule, set this property to `false`\\. \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\. If this property is set to `true` then AWS SAM passes `ENABLED`, otherwise it passes `DISABLED`\\.", + "title": "Enabled", + "type": "boolean" + }, + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The state of the rule\\. \n*Accepted values:* `DISABLED | ENABLED` \nSpecify either the `Enabled` or `State` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-state) property of an `AWS::Events::Rule` resource\\.", + "title": "State" + } + }, + "title": "CloudWatchEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "title": "Arn" + }, + "QueueLogicalId": { + "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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 custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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": "QueueLogicalId", + "type": "string" + }, + "Type": { + "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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\\.", + "enum": [ + "SQS" + ], + "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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": "Type", + "type": "string" + } + }, + "title": "DeadLetterConfig", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "EventBridgeRuleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__EventBridgeRuleEventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Target": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__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-function-target.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-function-target.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" + } + }, + "required": [ + "Pattern" + ], + "title": "EventBridgeRuleEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__EventBridgeRuleTarget": { + "additionalProperties": false, + "properties": { + "Id": { + "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": [ + "Id" + ], + "title": "EventBridgeRuleTarget", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__Globals": { + "additionalProperties": false, + "properties": { + "Architectures": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Architectures" + }, + "AssumeRolePolicyDocument": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AssumeRolePolicyDocument", + "type": "object" + }, + "AutoPublishAlias": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AutoPublishAlias" + }, + "CodeUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/CodeUri" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "CodeUri" + }, + "DeadLetterQueue": { + "anyOf": [ + { + "type": "object" + }, + { + "$ref": "#/definitions/DeadLetterQueue" + } + ], + "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "title": "DeadLetterQueue" + }, + "DeploymentPreference": { + "allOf": [ + { + "$ref": "#/definitions/DeploymentPreference" + } + ], + "description": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "markdownDescription": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "title": "DeploymentPreference" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "title": "Description" + }, + "Environment": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "Environment" + }, + "EphemeralStorage": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "title": "EphemeralStorage" + }, + "EventInvokeConfig": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeConfig" + } + ], + "description": "The object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.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 object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EventInvokeConfig" + }, + "Handler": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "title": "Handler" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "title": "KmsKeyArn" + }, + "Layers": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "title": "Layers" + }, + "MemorySize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "title": "MemorySize" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "ProvisionedConcurrencyConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "markdownDescription": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "title": "ProvisionedConcurrencyConfig" + }, + "ReservedConcurrentExecutions": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "title": "ReservedConcurrentExecutions" + }, + "RolePath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The path to the function'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 function'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" + }, + "Runtime": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "title": "Runtime" + }, + "SnapStart": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "title": "SnapStart" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "title": "Tags", + "type": "object" + }, + "Timeout": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "title": "Timeout" + }, + "Tracing": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "Active", + "PassThrough" + ], + "type": "string" + } + ], + "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "title": "Tracing" + }, + "VpcConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "VpcConfig" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__Properties": { + "additionalProperties": false, + "properties": { + "Architectures": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "Architectures" + }, + "AssumeRolePolicyDocument": { + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AssumeRolePolicyDocument", + "type": "object" + }, + "AutoPublishAlias": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AutoPublishAlias" + }, + "AutoPublishCodeSha256": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "AutoPublishCodeSha256" + }, + "CodeSigningConfigArn": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "CodeSigningConfigArn" + }, + "CodeUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/CodeUri" + } + ], + "description": "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\\.", + "markdownDescription": "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\\.", + "title": "CodeUri" + }, + "DeadLetterQueue": { + "anyOf": [ + { + "type": "object" + }, + { + "$ref": "#/definitions/DeadLetterQueue" + } + ], + "description": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "markdownDescription": "Configures an Amazon Simple Notification Service \\(Amazon SNS\\) topic or Amazon Simple Queue Service \\(Amazon SQS\\) queue where Lambda sends events that it can't process\\. For more information about dead\\-letter queue functionality, see [AWS Lambda function dead letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\. \nIf your Lambda function's event source is an Amazon SQS queue, configure a dead\\-letter queue for the source queue, not for the Lambda function\\. The dead\\-letter queue that you configure for a function is used for the function's [asynchronous invocation queue](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html), not for event source queues\\.\n*Type*: Map \\| [DeadLetterQueue](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deadletterqueue.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-deadletterconfig.html) property of an `AWS::Lambda::Function` resource\\. In AWS CloudFormation the type is derived from the `TargetArn`, whereas in AWS SAM you must pass the type along with the `TargetArn`\\.", + "title": "DeadLetterQueue" + }, + "DeploymentPreference": { + "allOf": [ + { + "$ref": "#/definitions/DeploymentPreference" + } + ], + "description": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "markdownDescription": "The settings to enable gradual Lambda deployments\\. \nIf a `DeploymentPreference` object is specified, AWS SAM creates an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-application.html) called `ServerlessDeploymentApplication` \\(one per stack\\), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codedeploy-deploymentgroup.html) called `DeploymentGroup`, and an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) called `CodeDeployServiceRole`\\. \n*Type*: [DeploymentPreference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-deploymentpreference.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*See also*: For more information about this property, see [Deploying serverless applications gradually](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)\\.", + "title": "DeploymentPreference" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.", + "title": "Description" + }, + "Environment": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "Environment" + }, + "EphemeralStorage": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "An object that specifies the disk space, in MB, available to your Lambda function in `/tmp`\\. \nFor more information about this property, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [EphemeralStorage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EphemeralStorage`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-ephemeralstorage) property of an `AWS::Lambda::Function` resource\\.", + "title": "EphemeralStorage" + }, + "EventInvokeConfig": { + "allOf": [ + { + "$ref": "#/definitions/EventInvokeConfig" + } + ], + "description": "The object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.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 object that describes event invoke configuration on a Lambda function\\. \n*Type*: [EventInvokeConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventinvokeconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EventInvokeConfig" + }, + "Events": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/S3Event" + }, + { + "$ref": "#/definitions/SNSEvent" + }, + { + "$ref": "#/definitions/KinesisEvent" + }, + { + "$ref": "#/definitions/DynamoDBEvent" + }, + { + "$ref": "#/definitions/SQSEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ApiEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__ScheduleV2Event" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__CloudWatchEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__EventBridgeRuleEvent" + }, + { + "$ref": "#/definitions/CloudWatchLogsEvent" + }, + { + "$ref": "#/definitions/IoTRuleEvent" + }, + { + "$ref": "#/definitions/AlexaSkillEvent" + }, + { + "$ref": "#/definitions/CognitoEvent" + }, + { + "$ref": "#/definitions/HttpApiEvent" + }, + { + "$ref": "#/definitions/MSKEvent" + }, + { + "$ref": "#/definitions/MQEvent" + }, + { + "$ref": "#/definitions/SelfManagedKafkaEvent" + } + ] + }, + "description": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies the events that trigger this function\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-eventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Events", + "type": "object" + }, + "FileSystemConfigs": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\. \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "List of [FileSystemConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html) objects that specify the connection settings for an Amazon Elastic File System \\(Amazon EFS\\) file system\\. \nIf your template contains an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a `DependsOn` resource attribute to ensure that the mount target is created or updated before the function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FileSystemConfigs`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs) property of an `AWS::Lambda::Function` resource\\.", + "title": "FileSystemConfigs" + }, + "FunctionName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "A name for the function\\. If you don't specify a name, a unique name is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FunctionName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname) property of an `AWS::Lambda::Function` resource\\.", + "title": "FunctionName" + }, + "FunctionUrlConfig": { + "allOf": [ + { + "$ref": "#/definitions/FunctionUrlConfig" + } + ], + "description": "The object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.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 object that describes a function URL\\. A function URL is an HTTPS endpoint that you can use to invoke your function\\. \nFor more information, see [Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/lambda-urls.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [FunctionUrlConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-functionurlconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "FunctionUrlConfig" + }, + "Handler": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The function within your code that is called to begin execution\\. This property is only required if the `PackageType` property is set to `Zip`\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Handler`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler) property of an `AWS::Lambda::Function` resource\\.", + "title": "Handler" + }, + "ImageConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The object used to configure Lambda container image settings\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: [ImageConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig) property of an `AWS::Lambda::Function` resource\\.", + "title": "ImageConfig" + }, + "ImageUri": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "The URI of the Amazon Elastic Container Registry \\(Amazon ECR\\) repository for the Lambda function's container image\\. This property only applies if the `PackageType` property is set to `Image`, otherwise it is ignored\\. For more information, see [Using container images with Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the *AWS Lambda Developer Guide*\\. \nIf the `PackageType` property is set to `Image`, then either `ImageUri` is required, or you must build your application with necessary `Metadata` entries in the AWS SAM template file\\. For more information, see [Building applications](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html)\\.\nBuilding your application with necessary `Metadata` entries takes precedence over `ImageUri`, so if you specify both then `ImageUri` is ignored\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ImageUri`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "ImageUri" + }, + "InlineCode": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\. \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.", + "markdownDescription": "The Lambda function code that is written directly in the template\\. This property only applies if the `PackageType` property is set to `Zip`, otherwise it is ignored\\. \nIf the `PackageType` property is set to `Zip` \\(default\\), then one of `CodeUri` or `InlineCode` is required\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ZipFile`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile) property of the `AWS::Lambda::Function` `Code` data type\\.", + "title": "InlineCode" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The ARN of an AWS Key Management Service \\(AWS KMS\\) key that Lambda uses to encrypt and decrypt your function's environment variables\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn) property of an `AWS::Lambda::Function` resource\\.", + "title": "KmsKeyArn" + }, + "Layers": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The list of `LayerVersion` ARNs that this function should use\\. The order specified here is the order in which they will be imported when running the Lambda function\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Layers`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers) property of an `AWS::Lambda::Function` resource\\.", + "title": "Layers" + }, + "MemorySize": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The size of the memory in MB allocated per invocation of the function\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MemorySize`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize) property of an `AWS::Lambda::Function` resource\\.", + "title": "MemorySize" + }, + "PackageType": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\. \n**Notes**: \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\. \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\. \n*Valid values*: `Zip` or `Image` \n*Type*: String \n*Required*: No \n*Default*: `Zip` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The deployment package type of the Lambda function\\. For more information, see [Lambda deployment packages](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) in the *AWS Lambda Developer Guide*\\. \n**Notes**: \n1\\. If this property is set to `Zip` \\(default\\), then either `CodeUri` or `InlineCode` applies, and `ImageUri` is ignored\\. \n2\\. If this property is set to `Image`, then only `ImageUri` applies, and both `CodeUri` and `InlineCode` are ignored\\. The Amazon ECR repository required to store the functionsl container image can be auto created by the AWS SAM CLI\\. For more information, see [sam deploy](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)\\. \n*Valid values*: `Zip` or `Image` \n*Type*: String \n*Required*: No \n*Default*: `Zip` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PackageType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-packagetype) property of an `AWS::Lambda::Function` resource\\.", + "title": "PackageType" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of a permissions boundary to use for this function's execution role\\. This property works only if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "Policies": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + ], + "description": "One or more policies that this function needs\\. They will be appended to the default role for this function\\. \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\. \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\. \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.", + "markdownDescription": "One or more policies that this function needs\\. They will be appended to the default role for this function\\. \nThis property accepts a single string or a list of strings, and can be the name of AWS managed policies or AWS SAM policy templates, or inline IAM policy documents formatted in YAML\\. \nFor more information about AWS managed policies, see [AWS managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) in the IAM User Guide\\. For more information about AWS SAM policy templates, see [AWS SAM policy templates](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-policy-templates.html) in the AWS Serverless Application Model Developer Guide\\. For more information about inline policies, see [Inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) in the IAM User Guide\\. \nIf the `Role` property is set, this property is ignored\\.\n*Type*: String \\| List \\| Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Policies`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-policies) property of an `AWS::IAM::Role` resource\\. AWS SAM supports AWS managed policy names and AWS SAM policy templates, in addition to JSON policy documents\\. AWS CloudFormation accepts only JSON policy documents\\.", + "title": "Policies" + }, + "ProvisionedConcurrencyConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "markdownDescription": "The provisioned concurrency configuration of a function's alias\\. \n`ProvisionedConcurrencyConfig` can be specified only if the `AutoPublishAlias` is set\\. Otherwise, an error results\\.\n*Type*: [ProvisionedConcurrencyConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedConcurrencyConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-alias.html#cfn-lambda-alias-provisionedconcurrencyconfig) property of an `AWS::Lambda::Alias` resource\\.", + "title": "ProvisionedConcurrencyConfig" + }, + "ReservedConcurrentExecutions": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum number of concurrent executions that you want to reserve for the function\\. \nFor more information about this property, see [Lambda Function Scaling](https://docs.aws.amazon.com/lambda/latest/dg/scaling.html) in the *AWS Lambda Developer Guide*\\. \n*Type*: Integer \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ReservedConcurrentExecutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions) property of an `AWS::Lambda::Function` resource\\.", + "title": "ReservedConcurrentExecutions" + }, + "Role": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The ARN of an IAM role to use as this function's execution role\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `Role`\\.", + "markdownDescription": "The ARN of an IAM role to use as this function's execution role\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Role`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-role) property of an `AWS::Lambda::Function` resource\\. This is required in AWS CloudFormation but not in AWS SAM\\. If a role isn't specified, one is created for you with a logical ID of `Role`\\.", + "title": "Role" + }, + "RolePath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The path to the function'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 function'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" + }, + "Runtime": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)\\. This property is only required if the `PackageType` property is set to `Zip`\\. \nIf you specify the `provided` identifier for this property, you can use the `Metadata` resource attribute to instruct AWS SAM to build the custom runtime that this function requires\\. For more information about building custom runtimes, see [Building custom runtimes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/building-custom-runtimes.html)\\.\n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Runtime`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime) property of an `AWS::Lambda::Function` resource\\.", + "title": "Runtime" + }, + "SnapStart": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "Create a snapshot of any new Lambda function version\\. A snapshot is a cached state of your initialized function, including all of its dependencies\\. The function is initialized just once and the cached state is reused for all future invocations, improving application performance by reducing the number of times your function must be initialized\\. To learn more, see [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/API_SnapStart.html) in the *AWS Lambda API Reference*\\. \n*Type*: [SnapStart](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-snapstart.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SnapStart`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart) property of an `AWS::Lambda::Function` resource\\.", + "title": "SnapStart" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", + "title": "Tags", + "type": "object" + }, + "Timeout": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The maximum time in seconds that the function can run before it is stopped\\. \n*Type*: Integer \n*Required*: No \n*Default*: 3 \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Timeout`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout) property of an `AWS::Lambda::Function` resource\\.", + "title": "Timeout" + }, + "Tracing": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "Active", + "PassThrough" + ], + "type": "string" + } + ], + "description": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "markdownDescription": "The string that specifies the function's X\\-Ray tracing mode\\. For more information about X\\-Ray, see [Using AWS Lambda with AWS X\\-Ray](https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html) in the *AWS Lambda Developer Guide*\\. \n*Valid values*: `Active` or `PassThrough` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`TracingConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig) property of an `AWS::Lambda::Function` resource\\. If the `Tracing` property is set to `Active` and the `Role` property is not specified, then AWS SAM adds the `arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess` policy to the Lambda execution role that it creates for you\\.", + "title": "Tracing" + }, + "VersionDescription": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the `Description` field that is added on the new Lambda version resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.", + "markdownDescription": "Specifies the `Description` field that is added on the new Lambda version resource\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-version.html#cfn-lambda-version-description) property of an `AWS::Lambda::Version` resource\\.", + "title": "VersionDescription" + }, + "VpcConfig": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "markdownDescription": "The configuration that enables this function to access private resources within your virtual private cloud \\(VPC\\)\\. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-vpcconfig.html) property of an `AWS::Lambda::Function` resource\\.", + "title": "VpcConfig" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::Function" + ], + "title": "Type", + "type": "string" + }, + "UpdateReplacePolicy": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Type" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ResourcePolicy": { + "additionalProperties": false, + "properties": { + "AwsAccountBlacklist": { + "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountBlacklist", + "type": "array" + }, + "AwsAccountWhitelist": { + "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountWhitelist", + "type": "array" + }, + "CustomStatements": { + "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "CustomStatements", + "type": "array" + }, + "IntrinsicVpcBlacklist": { + "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpcBlacklist", + "type": "array" + }, + "IntrinsicVpcWhitelist": { + "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpcWhitelist", + "type": "array" + }, + "IntrinsicVpceBlacklist": { + "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpceBlacklist", + "type": "array" + }, + "IntrinsicVpceWhitelist": { + "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpceWhitelist", + "type": "array" + }, + "IpRangeBlacklist": { + "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IpRangeBlacklist", + "type": "array" + }, + "IpRangeWhitelist": { + "description": "The IP addresses or address ranges to allow\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", + "title": "IpRangeWhitelist", + "type": "array" + }, + "SourceVpcBlacklist": { + "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "SourceVpcBlacklist", + "type": "array" + }, + "SourceVpcWhitelist": { + "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "title": "SourceVpcWhitelist", + "type": "array" + } + }, + "title": "ResourcePolicy", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ScheduleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ScheduleV2Event": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__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\\.", + "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\\.", + "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\\.", + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleV2Event", + "type": "object" + }, + "samtranslator__schema__aws_serverless_function__ScheduleV2EventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \nThe [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html) resource type has a similar data type, `DeadLetterQueue`, which handles failures that occur after successful invocation of the target Lambda function\\. Examples of these types of failures include Lambda throttling, or errors returned by the Lambda target function\\. For more information about the function `DeadLetterQueue` property, see [AWS Lambda function dead\\-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq) in the *AWS Lambda Developer Guide*\\.\n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-scheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Description" + }, + "EndDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "EndDate" + }, + "FlexibleTimeWindow": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "FlexibleTimeWindow" + }, + "GroupName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "GroupName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "title": "Input" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "KmsKeyArn" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `Function-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Name" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A RetryPolicy object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "A RetryPolicy object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "RoleArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RoleArn" + }, + "ScheduleExpression": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the scheduler schedule event runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the scheduler schedule event runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpression" + }, + "ScheduleExpressionTimezone": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpressionTimezone" + }, + "StartDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "StartDate" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the Scheduler schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The state of the Scheduler schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "State" + } + }, + "title": "ScheduleV2EventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Auth": { + "additionalProperties": false, + "properties": { + "Authorizers": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/OAuth2Authorizer" + }, + { + "$ref": "#/definitions/LambdaAuthorizer" + } + ] + }, + "description": "The authorizer used to control access to your API Gateway API\\. \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.", + "markdownDescription": "The authorizer used to control access to your API Gateway API\\. \n*Type*: [OAuth2Authorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-oauth2authorizer.html) \\| [LambdaAuthorizer](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-lambdaauthorizer.html) \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: AWS SAM adds the authorizers to the OpenAPI definition\\.", + "title": "Authorizers", + "type": "object" + }, + "DefaultAuthorizer": { + "description": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\. \n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specify the default authorizer to use for authorizing API calls to your API Gateway API\\. You can specify `AWS_IAM` as a default authorizer if `EnableIamAuthorizer` is set to `true`\\. Otherwise, specify an authorizer that you've defined in `Authorizers`\\. \n*Type*: String \n*Required*: No \n*Default*: None \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "DefaultAuthorizer", + "type": "string" + }, + "EnableIamAuthorizer": { + "description": "Specify whether to use IAM authorization for the API route\\. \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 whether to use IAM authorization for the API route\\. \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": "EnableIamAuthorizer", + "type": "boolean" + } + }, + "title": "Auth", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__DefinitionUri": { + "additionalProperties": false, + "properties": { + "Bucket": { + "description": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "markdownDescription": "The name of the Amazon S3 bucket where the OpenAPI file is stored\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Bucket`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-bucket) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "title": "Bucket", + "type": "string" + }, + "Key": { + "description": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "markdownDescription": "The Amazon S3 key of the OpenAPI file\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Key`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-key) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "title": "Key", + "type": "string" + }, + "Version": { + "description": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "markdownDescription": "For versioned objects, the version of the OpenAPI file\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Version`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-api-bodys3location.html#cfn-apigatewayv2-api-bodys3location-version) property of the `AWS::ApiGatewayV2::Api` `BodyS3Location` data type\\.", + "title": "Version", + "type": "string" + } + }, + "required": [ + "Bucket", + "Key" + ], + "title": "DefinitionUri", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Domain": { + "additionalProperties": false, + "properties": { + "BasePath": { + "description": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.", + "items": { + "type": "string" + }, + "markdownDescription": "A list of the basepaths to configure with the Amazon API Gateway domain name\\. \n*Type*: List \n*Required*: No \n*Default*: / \n*AWS CloudFormation compatibility*: This property is similar to the [`ApiMappingKey`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-apimapping.html#cfn-apigatewayv2-apimapping-apimappingkey) property of an `AWS::ApiGatewayV2::ApiMapping` resource\\. AWS SAM creates multiple `AWS::ApiGatewayV2::ApiMapping` resources, one per value specified in this property\\.", + "title": "BasePath", + "type": "array" + }, + "CertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of an AWS managed certificate for this domain name's endpoint\\. AWS Certificate Manager is the only supported source\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-certificatearn) property of an `AWS::ApiGateway2::DomainName DomainNameConfiguration` resource\\.", + "title": "CertificateArn" + }, + "DomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.", + "markdownDescription": "The custom domain name for your API Gateway API\\. Uppercase letters are not supported\\. \nAWS SAM generates an `AWS::ApiGatewayV2::DomainName` resource when this property is set\\. For information about this scenario, see [DomainName property is specified](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-generated-resources-httpapi.html#sam-specification-generated-resources-httpapi-domain-name)\\. For 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*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DomainName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-domainname) property of an `AWS::ApiGateway2::DomainName` resource\\.", + "title": "DomainName" + }, + "EndpointConfiguration": { + "anyOf": [ + { + "type": "object" + }, + { + "enum": [ + "REGIONAL" + ], + "type": "string" + } + ], + "description": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \nThe only valid value for HTTP APIs is `REGIONAL`\\. \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines the type of API Gateway endpoint to map to the custom domain\\. The value of this property determines how the `CertificateArn` property is mapped in AWS CloudFormation\\. \nThe only valid value for HTTP APIs is `REGIONAL`\\. \n*Type*: String \n*Required*: No \n*Default*: `REGIONAL` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "EndpointConfiguration" + }, + "MutualTlsAuthentication": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.", + "markdownDescription": "The mutual transport layer security \\(TLS\\) authentication configuration for a custom domain name\\. \n*Type*: [MutualTlsAuthentication](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`MutualTlsAuthentication`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-domainname.html#cfn-apigatewayv2-domainname-mutualtlsauthentication) property of an `AWS::ApiGatewayV2::DomainName` resource\\.", + "title": "MutualTlsAuthentication" + }, + "OwnershipVerificationCertificateArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "markdownDescription": "The ARN of the public certificate issued by ACM to validate ownership of your custom domain\\. Required only when you configure mutual TLS and you specify an ACM imported or private CA certificate ARN for the `CertificateArn`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`OwnershipVerificationCertificateArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-ownershipverificationcertificatearn) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "title": "OwnershipVerificationCertificateArn" + }, + "Route53": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Route53" + } + ], + "description": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Defines an Amazon Route\u00a053 configuration\\. \n*Type*: [Route53Configuration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-route53configuration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Route53" + }, + "SecurityPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The TLS version of the security policy for this domain name\\. \nThe only valid value for HTTP APIs is `TLS_1_2`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "markdownDescription": "The TLS version of the security policy for this domain name\\. \nThe only valid value for HTTP APIs is `TLS_1_2`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SecurityPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigatewayv2-domainname-domainnameconfiguration.html#cfn-apigatewayv2-domainname-domainnameconfiguration-securitypolicy) property of the `AWS::ApiGatewayV2::DomainName` `DomainNameConfiguration` data type\\.", + "title": "SecurityPolicy" + } + }, + "required": [ + "CertificateArn", + "DomainName" + ], + "title": "Domain", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Globals": { + "additionalProperties": false, + "properties": { + "AccessLogSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "AccessLogSettings" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + } + ], + "description": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "CorsConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "CorsConfiguration" + }, + "DefaultRouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "DefaultRouteSettings" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "FailOnWarnings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "title": "FailOnWarnings" + }, + "RouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "RouteSettings" + }, + "StageVariables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "StageVariables" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "title": "Tags", + "type": "object" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Properties": { + "additionalProperties": false, + "properties": { + "AccessLogSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The settings for access logging in a stage\\. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "AccessLogSettings" + }, + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Auth" + } + ], + "description": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures authorization for controlling access to your API Gateway HTTP API\\. \nFor more information, see [Controlling access to HTTP APIs with JWT authorizers](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) in the *API Gateway Developer Guide*\\. \n*Type*: [HttpApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapiauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "CorsConfiguration": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Manages cross\\-origin resource sharing \\(CORS\\) for all your API Gateway HTTP APIs\\. Specify the domain to allow as a string, or specify an `HttpApiCorsConfiguration` object\\. Note that CORS requires AWS SAM to modify your OpenAPI definition, so CORS works only if the `DefinitionBody` property is specified\\. \nFor more information, see [Configuring CORS for an HTTP API](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-cors.html) in the *API Gateway Developer Guide*\\. \nIf `CorsConfiguration` is set both in an OpenAPI definition and at the property level, then AWS SAM merges both configuration sources with the properties taking precedence\\. If this property is set to `true`, then all origins are allowed\\.\n*Type*: String \\| [HttpApiCorsConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapicorsconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "CorsConfiguration" + }, + "DefaultRouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The default route settings for this HTTP API\\. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "DefaultRouteSettings" + }, + "DefinitionBody": { + "description": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.", + "markdownDescription": "The OpenAPI definition that describes your HTTP API\\. If you don't specify a `DefinitionUri` or a `DefinitionBody`, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \n*Type*: JSON \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`Body`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-body) property of an `AWS::ApiGatewayV2::Api` resource\\. If certain properties are provided, AWS SAM may insert content into or modify the `DefinitionBody` before it is passed to AWS CloudFormation\\. Properties include `Auth` and an `EventSource` of type HttpApi for a corresponding `AWS::Serverless::Function` resource\\.", + "title": "DefinitionBody", + "type": "object" + }, + "DefinitionUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__DefinitionUri" + } + ], + "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\. \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI, local file path, or location object of the the OpenAPI definition that defines the HTTP API\\. The Amazon S3 object that this property references must be a valid OpenAPI definition file\\. If you don't specify a `DefinitionUri` or a `DefinitionBody` are specified, AWS SAM generates a `DefinitionBody` for you based on your template configuration\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command for the definition to be transformed properly\\. \nIntrinsic functions are not supported in external OpenApi definition files that you reference with `DefinitionUri`\\. To import an OpenApi definition into the template, use the `DefinitionBody` property with the [Include transform](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html)\\. \n*Type*: String \\| [HttpApiDefinition](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidefinition.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`BodyS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-bodys3location) property of an `AWS::ApiGatewayV2::Api` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "DefinitionUri" + }, + "Description": { + "description": "The description of the HTTP API resource\\. \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` 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 description of the HTTP API resource\\. \nWhen you specify `Description`, AWS SAM will modify the HTTP API resource's OpenApi definition by setting the `description` field\\. The following scenarios will result in an error: \n+ The `DefinitionBody` property is specified with the `description` field set in the Open API definition \u2013 This results in a conflict of the `description` 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": "Description", + "type": "string" + }, + "DisableExecuteApiEndpoint": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "markdownDescription": "Specifies whether clients can invoke your HTTP API by using the default `execute-api` endpoint `https://{api_id}.execute-api.{region}.amazonaws.com`\\. By default, clients can invoke your API with the default endpoint\\. To require that clients only use a custom domain name to invoke your API, disable the default endpoint\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "title": "DisableExecuteApiEndpoint" + }, + "Domain": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Domain" + } + ], + "description": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configures a custom domain for this API Gateway HTTP API\\. \n*Type*: [HttpApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-httpapi-httpapidomainconfiguration.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Domain" + }, + "FailOnWarnings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "markdownDescription": "Specifies whether to roll back the HTTP API creation \\(`true`\\) or not \\(`false`\\) when a warning is encountered\\. The default value is `false`\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource\\.", + "title": "FailOnWarnings" + }, + "Name": { + "$ref": "#/definitions/PassThroughProp" + }, + "RouteSettings": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The route settings, per route, for this HTTP API\\. For more information, see [Working with routes for HTTP APIs](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-routes.html) in the *API Gateway Developer Guide*\\. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "RouteSettings" + }, + "StageName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\. \n*Type*: String \n*Required*: No \n*Default*: $default \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "The name of the API stage\\. If no name is specified, AWS SAM uses the `$default` stage from API Gateway\\. \n*Type*: String \n*Required*: No \n*Default*: $default \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "StageName" + }, + "StageVariables": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "markdownDescription": "A map that defines the stage variables\\. Variable names can have alphanumeric and underscore characters\\. The values must match \\[A\\-Za\\-z0\\-9\\-\\.\\_\\~:/?\\#&=,\\]\\+\\. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource\\.", + "title": "StageVariables" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to add to this API Gateway stage\\. Keys can be 1 to 128 Unicode characters in length and cannot include the prefix `aws:`\\. You can use any of the following characters: the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`, and `-`\\. Values can be 1 to 256 Unicode characters in length\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\. \n*Additional notes*: The `Tags` property requires AWS SAM to modify your OpenAPI definition, so tags are added only if the `DefinitionBody` property is specified\u2014no tags are added if the `DefinitionUri` property is specified\\. AWS SAM automatically adds an `httpapi:createdBy:SAM` tag\\. Tags are also added to the `AWS::ApiGatewayV2::Stage` resource and the `AWS::ApiGatewayV2::DomainName` resource \\(if `DomainName` is specified\\)\\.", + "title": "Tags", + "type": "object" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "Metadata": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::HttpApi" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_httpapi__Route53": { + "additionalProperties": false, + "properties": { + "DistributionDomainName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "markdownDescription": "Configures a custom distribution of the API custom domain name\\. \n*Type*: String \n*Required*: No \n*Default*: Use the API Gateway distribution\\. \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DNSName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget-1.html#cfn-route53-aliastarget-dnshostname) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: The domain name of a [CloudFront distribution](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html)\\.", + "title": "DistributionDomainName" + }, + "EvaluateTargetHealth": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "markdownDescription": "When EvaluateTargetHealth is true, an alias record inherits the health of the referenced AWS resource, such as an Elastic Load Balancing load balancer or another record in the hosted zone\\. \n*Type*: Boolean \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EvaluateTargetHealth`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-aliastarget.html#cfn-route53-aliastarget-evaluatetargethealth) property of an `AWS::Route53::RecordSetGroup AliasTarget` resource\\. \n*Additional notes*: You can't set EvaluateTargetHealth to true when the alias target is a CloudFront distribution\\.", + "title": "EvaluateTargetHealth" + }, + "HostedZoneId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The ID of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneId`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzoneid) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneId" + }, + "HostedZoneName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "markdownDescription": "The name of the hosted zone that you want to create records in\\. \nSpecify either `HostedZoneName` or `HostedZoneId`, but not both\\. If you have multiple hosted zones with the same domain name, you must specify the hosted zone using `HostedZoneId`\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`HostedZoneName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-recordset-1.html#cfn-route53-recordset-hostedzonename) property of an `AWS::Route53::RecordSetGroup RecordSet` resource\\.", + "title": "HostedZoneName" + }, + "IpV6": { + "description": "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\\.", + "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" + } + }, + "title": "Route53", + "type": "object" + }, + "samtranslator__schema__aws_serverless_layerversion__Properties": { + "additionalProperties": false, + "properties": { + "CompatibleArchitectures": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the supported instruction set architectures for the layer version\\. \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*: `x86_64`, `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Specifies the supported instruction set architectures for the layer version\\. \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*: `x86_64`, `arm64` \n*Type*: List \n*Required*: No \n*Default*: `x86_64` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleArchitectures`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatiblearchitectures) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "CompatibleArchitectures" + }, + "CompatibleRuntimes": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "List of runtimes compatible with this LayerVersion\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "List of runtimes compatible with this LayerVersion\\. \n*Type*: List \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`CompatibleRuntimes`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-compatibleruntimes) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "CompatibleRuntimes" + }, + "ContentUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/ContentUri" + } + ], + "description": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\. \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\. \nIf a path to a local folder is provided, for the content 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 \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.", + "markdownDescription": "Amazon S3 Uri, path to local folder, or LayerContent object of the layer code\\. \nIf an Amazon S3 Uri or LayerContent object is provided, The Amazon S3 object referenced must be a valid ZIP archive that contains the contents of an [Lambda layer](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)\\. \nIf a path to a local folder is provided, for the content 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 \\| [LayerContent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-layerversion-layercontent.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is similar to the [`Content`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-content) property of an `AWS::Lambda::LayerVersion` resource\\. The nested Amazon S3 properties are named differently\\.", + "title": "ContentUri" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Description of this layer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Description of this layer\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-description) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "Description" + }, + "LayerName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name or Amazon Resource Name \\(ARN\\) of the layer\\. \n*Type*: String \n*Required*: No \n*Default*: Resource logical id \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.", + "markdownDescription": "The name or Amazon Resource Name \\(ARN\\) of the layer\\. \n*Type*: String \n*Required*: No \n*Default*: Resource logical id \n*AWS CloudFormation compatibility*: This property is similar to the [`LayerName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-layername) property of an `AWS::Lambda::LayerVersion` resource\\. If you don't specify a name, the logical id of the resource will be used as the name\\.", + "title": "LayerName" + }, + "LicenseInfo": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Information about the license for this LayerVersion\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Information about the license for this LayerVersion\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LicenseInfo`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversion.html#cfn-lambda-layerversion-licenseinfo) property of an `AWS::Lambda::LayerVersion` resource\\.", + "title": "LicenseInfo" + }, + "RetentionPolicy": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\. \n*Valid values*: `Retain` or `Delete` \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\\. \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.", + "markdownDescription": "Specifies whether old versions of your LayerVersion are retained or deleted after an update\\. \n*Valid values*: `Retain` or `Delete` \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\\. \n*Additional notes*: When you specify `Retain`, AWS SAM adds a [Resource attributes](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification-resource-attributes.html) of `DeletionPolicy: Retain` to the transformed `AWS::Lambda::LayerVersion` resource\\.", + "title": "RetentionPolicy" + } + }, + "required": [ + "ContentUri" + ], + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_layerversion__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::LayerVersion" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_simpletable__Globals": { + "additionalProperties": false, + "properties": { + "SSESpecification": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "SSESpecification" + } + }, + "title": "Globals", + "type": "object" + }, + "samtranslator__schema__aws_serverless_simpletable__Properties": { + "additionalProperties": false, + "properties": { + "PrimaryKey": { + "allOf": [ + { + "$ref": "#/definitions/PrimaryKey" + } + ], + "description": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\. \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Attribute name and type to be used as the table's primary key\\. If not provided, the primary key will be a `String` with a value of `id`\\. \nThe value of this property cannot be modified after this resource is created\\.\n*Type*: [PrimaryKeyObject](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-simpletable-primarykeyobject.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "PrimaryKey" + }, + "ProvisionedThroughput": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Read and write throughput provisioning information\\. \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\. \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Read and write throughput provisioning information\\. \nIf `ProvisionedThroughput` is not specified `BillingMode` will be specified as `PAY_PER_REQUEST`\\. \n*Type*: [ProvisionedThroughput](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ProvisionedThroughput`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-provisionedthroughput.html) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "ProvisionedThroughput" + }, + "SSESpecification": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Specifies the settings to enable server\\-side encryption\\. \n*Type*: [SSESpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`SSESpecification`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-ssespecification.html) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "SSESpecification" + }, + "TableName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Name for the DynamoDB Table\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.", + "markdownDescription": "Name for the DynamoDB Table\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TableName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-tablename) property of an `AWS::DynamoDB::Table` resource\\.", + "title": "TableName" + }, + "Tags": { + "description": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "markdownDescription": "A map \\(string to string\\) that specifies the tags to be added to this SimpleTable\\. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *AWS CloudFormation User Guide*\\. \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-dynamodb-table.html#cfn-dynamodb-table-tags) property of an `AWS::DynamoDB::Table` resource\\. The Tags property in SAM consists of Key:Value pairs; in CloudFormation it consists of a list of Tag objects\\.", + "title": "Tags", + "type": "object" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_simpletable__Resource": { + "additionalProperties": false, + "properties": { + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::SimpleTable" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ApiEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ApiEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ApiEventProperties": { + "additionalProperties": false, + "properties": { + "Auth": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Auth" + } + ], + "description": "The authorization configuration for this API, path, and method\\. \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\. \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.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 authorization configuration for this API, path, and method\\. \nUse this property to override the API's `DefaultAuthorizer` setting for an individual path, when no `DefaultAuthorizer` is specified, or to override the default `ApiKeyRequired` setting\\. \n*Type*: [ApiStateMachineAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-apistatemachineauth.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Auth" + }, + "Method": { + "description": "The HTTP method for which this function is invoked\\. \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 HTTP method for which this function is invoked\\. \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": "Method", + "type": "string" + }, + "Path": { + "description": "The URI path for which this function is invoked\\. The value must start with `/`\\. \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 URI path for which this function is invoked\\. The value must start with `/`\\. \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": "Path", + "type": "string" + }, + "RestApiId": { + "anyOf": [ + { + "type": "object" + }, + { + "type": "string" + } + ], + "description": "The identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\. \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 identifier of a `RestApi` resource, which must contain an operation with the given path and method\\. Typically, this is set to reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in this template\\. \nIf you don't define this property, AWS SAM creates a default [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource using a generated `OpenApi` document\\. That resource contains a union of all paths and methods defined by `Api` events in the same template that do not specify a `RestApiId`\\. \nThis property can't reference an [AWS::Serverless::Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html) resource that is defined in another template\\. \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": "RestApiId" + }, + "UnescapeMappingTemplate": { + "title": "Unescapemappingtemplate", + "type": "boolean" + } + }, + "required": [ + "Method", + "Path" + ], + "title": "ApiEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__Auth": { + "additionalProperties": false, + "properties": { + "ApiKeyRequired": { + "description": "Requires an API key for this API, path, and method\\. \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": "Requires an API key for this API, path, and method\\. \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": "ApiKeyRequired", + "type": "boolean" + }, + "AuthorizationScopes": { + "description": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "items": { + "type": "string" + }, + "markdownDescription": "The authorization scopes to apply to this API, path, and method\\. \nThe scopes that you specify will override any scopes applied by the `DefaultAuthorizer` property if you have specified it\\. \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\\.", + "title": "AuthorizationScopes", + "type": "array" + }, + "Authorizer": { + "description": "The `Authorizer` for a specific state machine\\. \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\. \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 `Authorizer` for a specific state machine\\. \nIf you have specified a global authorizer for the API and want to make this state machine public, override the global authorizer by setting `Authorizer` to `NONE`\\. \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": "Authorizer", + "type": "string" + }, + "ResourcePolicy": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ResourcePolicy" + } + ], + "description": "Configure the resource policy for this API and path\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Configure the resource policy for this API and path\\. \n*Type*: [ResourcePolicyStatement](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-resourcepolicystatement.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "ResourcePolicy" + } + }, + "title": "Auth", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "CloudWatchEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__CloudWatchEventProperties": { + "additionalProperties": false, + "properties": { + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + } + }, + "title": "CloudWatchEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "markdownDescription": "The Amazon Resource Name \\(ARN\\) of the Amazon SQS queue specified as the target for the dead\\-letter queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Arn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-deadletterconfig.html#cfn-events-rule-deadletterconfig-arn) property of the `AWS::Events::Rule` `DeadLetterConfig` data type\\.", + "title": "Arn" + }, + "QueueLogicalId": { + "description": "The custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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 custom name of the dead letter queue that AWS SAM creates if `Type` is specified\\. \nIf the `Type` property is not set, this property is ignored\\.\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": "QueueLogicalId", + "type": "string" + }, + "Type": { + "description": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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\\.", + "enum": [ + "SQS" + ], + "markdownDescription": "The type of the queue\\. When this property is set, AWS SAM automatically creates a dead\\-letter queue and attaches necessary [resource\\-based policy](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-perms) to grant permission to rule resource to send events to the queue\\. \nSpecify either the `Type` property or `Arn` property, but not both\\.\n*Valid values*: `SQS` \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": "Type", + "type": "string" + } + }, + "title": "DeadLetterConfig", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "EventBridgeRuleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinedeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-deadletterconfig) property of the `AWS::Events::Rule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "EventBusName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "The event bus to associate with this rule\\. If you omit this property, AWS SAM uses the default event bus\\. \n*Type*: String \n*Required*: No \n*Default*: Default event bus \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventBusName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventbusname) property of an `AWS::Events::Rule` resource\\.", + "title": "EventBusName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-input) property of an `AWS::Events::Rule Target` resource\\.", + "title": "Input" + }, + "InputPath": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "markdownDescription": "When you don't want to pass the entire matched event to the target, use the `InputPath` property to describe which part of the event to pass\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`InputPath`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-inputpath) property of an `AWS::Events::Rule Target` resource\\.", + "title": "InputPath" + }, + "Pattern": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "markdownDescription": "Describes which events are routed to the specified target\\. For more information, see [Events and Event Patterns in EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [EventPattern](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EventPattern`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html#cfn-events-rule-eventpattern) property of an `AWS::Events::Rule` resource\\.", + "title": "Pattern" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. For more information, see [Event retry policy and using dead\\-letter queues](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html) in the *Amazon EventBridge User Guide*\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-retrypolicy) property of the `AWS::Events::Rule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "Target": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget" + } + }, + "title": "EventBridgeRuleEventProperties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleTarget": { + "additionalProperties": false, + "properties": { + "Id": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Id" + ], + "title": "EventBridgeRuleTarget", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__Properties": { + "additionalProperties": false, + "properties": { + "Definition": { + "description": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "The state machine definition is an object, where the format of the object matches the format of your AWS SAM template file, for example, JSON or YAML\\. State machine definitions adhere to the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nFor an example of an inline state machine definition, see [Examples](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-resource-statemachine--examples.html#sam-resource-statemachine--examples)\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Definition", + "type": "object" + }, + "DefinitionSubstitutions": { + "description": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.", + "markdownDescription": "A string\\-to\\-string map that specifies the mappings for placeholder variables in the state machine definition\\. This enables you to inject values obtained at runtime \\(for example, from intrinsic functions\\) into the state machine definition\\. \n*Type*: Map \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DefinitionSubstitutions`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions) property of an `AWS::StepFunctions::StateMachine` resource\\. If any intrinsic functions are specified in an inline state machine definition, AWS SAM adds entries to this property to inject them into the state machine definition\\.", + "title": "DefinitionSubstitutions", + "type": "object" + }, + "DefinitionUri": { + "anyOf": [ + { + "type": "string" + }, + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The Amazon Simple Storage Service \\(Amazon S3\\) URI or local file path of the state machine definition written in the [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)\\. \nIf you provide a local file path, the template must go through the workflow that includes the `sam deploy` or `sam package` command to correctly transform the definition\\. To do this, you must use version 0\\.52\\.0 or later of the AWS SAM CLI\\. \nYou must provide either a `Definition` or a `DefinitionUri`\\. \n*Type*: String \\| [S3Location](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the [`DefinitionS3Location`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "DefinitionUri" + }, + "Events": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__CloudWatchEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__EventBridgeRuleEvent" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ApiEvent" + } + ] + }, + "description": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "Specifies the events that trigger this state machine\\. Events consist of a type and a set of properties that depend on the type\\. \n*Type*: [EventSource](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventsource.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Events", + "type": "object" + }, + "Logging": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Defines which execution history events are logged and where they are logged\\. \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "Defines which execution history events are logged and where they are logged\\. \n*Type*: [LoggingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`LoggingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Logging" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the state machine\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The name of the state machine\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Name" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of a permissions boundary to use for this state machine's execution role\\. This property only works if the role is generated for you\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "Policies": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + }, + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "type": "array" + } + ], + "description": "One or more policies that this state machine's execution role needs\\. \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\. \nIf the `Role` property is set, this property is ignored\\. \n*Type*: String \\| List \\| Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "One or more policies that this state machine's execution role needs\\. \nThis property accepts a single string or a list of strings\\. The property can be the name of AWS managed AWS Identity and Access Management \\(IAM\\) policies, AWS SAM policy templates, or one or more inline policy documents formatted as a map\\. \nIf the `Role` property is set, this property is ignored\\. \n*Type*: String \\| List \\| Map \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "Policies" + }, + "Role": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of an IAM role to use as this state machine's execution role\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The ARN of an IAM role to use as this state machine's execution role\\. \n*Type*: String \n*Required*: Conditional \n*AWS CloudFormation compatibility*: This property is passed directly to the `[ RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn)` property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Role" + }, + "RolePath": { + "$ref": "#/definitions/PassThroughProp" + }, + "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\\.", + "markdownDescription": "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\\.", + "title": "Tags", + "type": "object" + }, + "Tracing": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\. \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "Selects whether or not AWS X\\-Ray is enabled for the state machine\\. For more information about using X\\-Ray with Step Functions, see [AWS X\\-Ray and Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-xray-tracing.html) in the *AWS Step Functions Developer Guide*\\. \n*Type*: [TracingConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`TracingConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Tracing" + }, + "Type": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The type of the state machine\\. \n*Valid values*: `STANDARD` or `EXPRESS` \n*Type*: String \n*Required*: No \n*Default*: `STANDARD` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "markdownDescription": "The type of the state machine\\. \n*Valid values*: `STANDARD` or `EXPRESS` \n*Type*: String \n*Required*: No \n*Default*: `STANDARD` \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StateMachineType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype) property of an `AWS::StepFunctions::StateMachine` resource\\.", + "title": "Type" + } + }, + "title": "Properties", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__Resource": { + "additionalProperties": false, + "properties": { + "Condition": { + "$ref": "#/definitions/PassThroughProp" + }, + "Connectors": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" + }, + "Type": { + "enum": [ + "AWS::Serverless::StateMachine" + ], + "title": "Type", + "type": "string" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "Resource", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ResourcePolicy": { + "additionalProperties": false, + "properties": { + "AwsAccountBlacklist": { + "description": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to block\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountBlacklist", + "type": "array" + }, + "AwsAccountWhitelist": { + "description": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The AWS accounts to allow\\. For an example use of this property, see the Examples section at the bottom of this page\\. \n*Type*: List of String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "title": "AwsAccountWhitelist", + "type": "array" + }, + "CustomStatements": { + "description": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "A list of custom resource policy statements to apply to this API\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "CustomStatements", + "type": "array" + }, + "IntrinsicVpcBlacklist": { + "description": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of virtual private clouds \\(VPCs\\) to block, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpcBlacklist", + "type": "array" + }, + "IntrinsicVpcWhitelist": { + "description": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPCs to allow, where each VPC is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpcWhitelist", + "type": "array" + }, + "IntrinsicVpceBlacklist": { + "description": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to block, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. \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\\.", + "title": "IntrinsicVpceBlacklist", + "type": "array" + }, + "IntrinsicVpceWhitelist": { + "description": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The list of VPC endpoints to allow, where each VPC endpoint is specified as a reference such as a [dynamic reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) or the `Ref` [intrinsic function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html)\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IntrinsicVpceWhitelist", + "type": "array" + }, + "IpRangeBlacklist": { + "description": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to block\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "IpRangeBlacklist", + "type": "array" + }, + "IpRangeWhitelist": { + "description": "The IP addresses or address ranges to allow\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The IP addresses or address ranges to allow\\. \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\\.", + "title": "IpRangeWhitelist", + "type": "array" + }, + "SourceVpcBlacklist": { + "description": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to block\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. For an example use of this property, see the Examples section at the bottom of this page\\. \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\\.", + "title": "SourceVpcBlacklist", + "type": "array" + }, + "SourceVpcWhitelist": { + "description": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "object" + } + ] + }, + "markdownDescription": "The source VPC or VPC endpoints to allow\\. Source VPC names must start with `\"vpc-\"` and source VPC endpoint names must start with `\"vpce-\"`\\. \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\\.", + "title": "SourceVpcWhitelist", + "type": "array" + } + }, + "title": "ResourcePolicy", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ScheduleEvent": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/ScheduleEventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleEvent", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ScheduleV2Event": { + "additionalProperties": false, + "properties": { + "Properties": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties" + } + ], + "description": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.html) \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\.", + "markdownDescription": "An object describing the properties of this event mapping\\. The set of properties must conform to the defined `Type`\\. \n*Type*: [Schedule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedule.html) \\| [ScheduleV2](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineschedulev2.html) \\| [CloudWatchEvent](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinecloudwatchevent.html) \\| [EventBridgeRule](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineeventbridgerule.html) \\| [Api](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachineapi.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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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*: `Api`, `Schedule`, `ScheduleV2`, `CloudWatchEvent`, `EventBridgeRule` \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" + } + }, + "required": [ + "Type", + "Properties" + ], + "title": "ScheduleV2Event", + "type": "object" + }, + "samtranslator__schema__aws_serverless_statemachine__ScheduleV2EventProperties": { + "additionalProperties": false, + "properties": { + "DeadLetterConfig": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__DeadLetterConfig" + } + ], + "description": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "markdownDescription": "Configure the Amazon Simple Queue Service \\(Amazon SQS\\) queue where EventBridge sends events after a failed target invocation\\. Invocation can fail, for example, when sending an event to a Lambda function that doesn't exist, or when EventBridge has insufficient permissions to invoke the Lambda function\\. For more information, see [Configuring a dead\\-letter queue for EventBridge Scheduler](https://docs.aws.amazon.com/scheduler/latest/UserGuide/configuring-schedule-dlq.html) in the *EventBridge Scheduler User Guide*\\. \n*Type*: [DeadLetterConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-statemachine-statemachinescheduledeadletterconfig.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is similar to the [`DeadLetterConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-deadletterconfig) property of the `AWS::Scheduler::Schedule` `Target` data type\\. The AWS SAM version of this property includes additional subproperties, in case you want AWS SAM to create the dead\\-letter queue for you\\.", + "title": "DeadLetterConfig" + }, + "Description": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "A description of the schedule\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-description) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Description" + }, + "EndDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, before which the schedule can invoke its target\\. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`EndDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-enddate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "EndDate" + }, + "FlexibleTimeWindow": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "Allows configuration of a window within which a schedule can be invoked\\. \n*Type*: [FlexibleTimeWindow](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-flexibletimewindow) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`FlexibleTimeWindow`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler.html#cfn-scheduler-schedule-flexibletimewindow) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "FlexibleTimeWindow" + }, + "GroupName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule group to associate with this schedule\\. If not defined, the default group is used\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`GroupName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-groupname) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "GroupName" + }, + "Input": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "markdownDescription": "Valid JSON text passed to the target\\. If you use this property, nothing from the event text itself is passed to the target\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Input`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-input) property of an `AWS::Scheduler::Schedule Target` resource\\.", + "title": "Input" + }, + "KmsKeyArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The ARN for a KMS Key that will be used to encrypt customer data\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`KmsKeyArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-kmskeyarn) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "KmsKeyArn" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The name of the schedule\\. If you don't specify a name, AWS SAM generates a name in the format `StateMachine-Logical-IDEvent-Source-Name` and uses that ID for the schedule name\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-name) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "Name" + }, + "PermissionsBoundary": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "markdownDescription": "The ARN of the policy used to set the permissions boundary for the role\\. \nIf `PermissionsBoundary` is defined, AWS SAM will apply the same boundaries to the scheduler schedule's target IAM role\\.\n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`PermissionsBoundary`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html#cfn-iam-role-permissionsboundary) property of an `AWS::IAM::Role` resource\\.", + "title": "PermissionsBoundary" + }, + "RetryPolicy": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "A `RetryPolicy` object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "A `RetryPolicy` object that includes information about the retry policy settings\\. \n*Type*: [RetryPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RetryPolicy`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-retrypolicy) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RetryPolicy" + }, + "RoleArn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "markdownDescription": "The ARN of the IAM role that EventBridge Scheduler will use for the target when the schedule is invoked\\. \n*Type*: [RoleArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`RoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-scheduler-schedule-target.html#cfn-scheduler-schedule-target-rolearn) property of the `AWS::Scheduler::Schedule` `Target` data type\\.", + "title": "RoleArn" + }, + "ScheduleExpression": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The scheduling expression that determines when and how often the schedule runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The scheduling expression that determines when and how often the schedule runs\\. \n*Type*: String \n*Required*: Yes \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpression) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpression" + }, + "ScheduleExpressionTimezone": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The timezone in which the scheduling expression is evaluated\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`ScheduleExpressionTimezone`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-scheduleexpressiontimezone) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "ScheduleExpressionTimezone" + }, + "StartDate": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The date, in UTC, after which the schedule can begin invoking a target\\. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`StartDate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-startdate) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "StartDate" + }, + "State": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The state of the schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "markdownDescription": "The state of the schedule\\. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource\\.", + "title": "State" + } + }, + "title": "ScheduleV2EventProperties", + "type": "object" + } + }, + "properties": { + "AWSTemplateFormatVersion": { + "enum": [ + "2010-09-09" + ], + "type": "string" + }, + "Conditions": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "object" + } + }, + "type": "object" + }, + "Description": { + "description": "Template description", + "maxLength": 1024, + "type": "string" + }, + "Globals": { + "$ref": "#/definitions/__main____Globals" + }, + "Mappings": { + "additionalProperties": false, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "object" + } + }, + "type": "object" + }, + "Metadata": { + "type": "object" + }, + "Outputs": { + "additionalProperties": false, + "maxProperties": 60, + "minProperties": 1, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "type": "object" + } + }, + "type": "object" + }, + "Parameters": { + "additionalProperties": false, + "maxProperties": 50, + "patternProperties": { + "^[a-zA-Z0-9]+$": { + "$ref": "#/definitions/Parameter" + } + }, + "type": "object" + }, + "Resources": { + "additionalProperties": { + "anyOf": [ + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Resource" + }, + { + "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Resource" + }, + { + "$ref": "#/definitions/AWS::ACMPCA::Certificate" + }, + { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthority" + }, + { + "$ref": "#/definitions/AWS::ACMPCA::CertificateAuthorityActivation" + }, + { + "$ref": "#/definitions/AWS::ACMPCA::Permission" + }, + { + "$ref": "#/definitions/AWS::APS::RuleGroupsNamespace" + }, + { + "$ref": "#/definitions/AWS::APS::Workspace" + }, + { + "$ref": "#/definitions/AWS::AccessAnalyzer::Analyzer" + }, + { + "$ref": "#/definitions/AWS::AmazonMQ::Broker" + }, + { + "$ref": "#/definitions/AWS::AmazonMQ::Configuration" + }, + { + "$ref": "#/definitions/AWS::AmazonMQ::ConfigurationAssociation" + }, + { + "$ref": "#/definitions/AWS::Amplify::App" + }, + { + "$ref": "#/definitions/AWS::Amplify::Branch" + }, + { + "$ref": "#/definitions/AWS::Amplify::Domain" + }, + { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Component" + }, + { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Form" + }, + { + "$ref": "#/definitions/AWS::AmplifyUIBuilder::Theme" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::Account" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::ApiKey" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::Authorizer" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::BasePathMapping" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::ClientCertificate" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::Deployment" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::DocumentationPart" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::DocumentationVersion" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::DomainName" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::GatewayResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::Method" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::Model" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::RequestValidator" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::Resource" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::RestApi" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::Stage" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlan" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::UsagePlanKey" + }, + { + "$ref": "#/definitions/AWS::ApiGateway::VpcLink" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Api" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiGatewayManagedOverrides" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::ApiMapping" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Authorizer" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Deployment" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::DomainName" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Integration" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::IntegrationResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Model" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Route" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::RouteResponse" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::Stage" + }, + { + "$ref": "#/definitions/AWS::ApiGatewayV2::VpcLink" + }, + { + "$ref": "#/definitions/AWS::AppConfig::Application" + }, + { + "$ref": "#/definitions/AWS::AppConfig::ConfigurationProfile" + }, + { + "$ref": "#/definitions/AWS::AppConfig::Deployment" + }, + { + "$ref": "#/definitions/AWS::AppConfig::DeploymentStrategy" + }, + { + "$ref": "#/definitions/AWS::AppConfig::Environment" + }, + { + "$ref": "#/definitions/AWS::AppConfig::HostedConfigurationVersion" + }, + { + "$ref": "#/definitions/AWS::AppFlow::Connector" + }, + { + "$ref": "#/definitions/AWS::AppFlow::ConnectorProfile" + }, + { + "$ref": "#/definitions/AWS::AppFlow::Flow" + }, + { + "$ref": "#/definitions/AWS::AppIntegrations::DataIntegration" + }, + { + "$ref": "#/definitions/AWS::AppIntegrations::EventIntegration" + }, + { + "$ref": "#/definitions/AWS::AppMesh::GatewayRoute" + }, + { + "$ref": "#/definitions/AWS::AppMesh::Mesh" + }, + { + "$ref": "#/definitions/AWS::AppMesh::Route" + }, + { + "$ref": "#/definitions/AWS::AppMesh::VirtualGateway" + }, + { + "$ref": "#/definitions/AWS::AppMesh::VirtualNode" + }, + { + "$ref": "#/definitions/AWS::AppMesh::VirtualRouter" + }, + { + "$ref": "#/definitions/AWS::AppMesh::VirtualService" + }, + { + "$ref": "#/definitions/AWS::AppRunner::ObservabilityConfiguration" + }, + { + "$ref": "#/definitions/AWS::AppRunner::Service" + }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcConnector" + }, + { + "$ref": "#/definitions/AWS::AppRunner::VpcIngressConnection" + }, + { + "$ref": "#/definitions/AWS::AppStream::AppBlock" + }, + { + "$ref": "#/definitions/AWS::AppStream::Application" + }, + { + "$ref": "#/definitions/AWS::AppStream::ApplicationEntitlementAssociation" + }, + { + "$ref": "#/definitions/AWS::AppStream::ApplicationFleetAssociation" + }, + { + "$ref": "#/definitions/AWS::AppStream::DirectoryConfig" + }, + { + "$ref": "#/definitions/AWS::AppStream::Entitlement" + }, + { + "$ref": "#/definitions/AWS::AppStream::Fleet" + }, + { + "$ref": "#/definitions/AWS::AppStream::ImageBuilder" + }, + { + "$ref": "#/definitions/AWS::AppStream::Stack" + }, + { + "$ref": "#/definitions/AWS::AppStream::StackFleetAssociation" + }, + { + "$ref": "#/definitions/AWS::AppStream::StackUserAssociation" + }, + { + "$ref": "#/definitions/AWS::AppStream::User" + }, + { + "$ref": "#/definitions/AWS::AppSync::ApiCache" + }, + { + "$ref": "#/definitions/AWS::AppSync::ApiKey" + }, + { + "$ref": "#/definitions/AWS::AppSync::DataSource" + }, + { + "$ref": "#/definitions/AWS::AppSync::DomainName" + }, + { + "$ref": "#/definitions/AWS::AppSync::DomainNameApiAssociation" + }, + { + "$ref": "#/definitions/AWS::AppSync::FunctionConfiguration" + }, + { + "$ref": "#/definitions/AWS::AppSync::GraphQLApi" + }, + { + "$ref": "#/definitions/AWS::AppSync::GraphQLSchema" + }, + { + "$ref": "#/definitions/AWS::AppSync::Resolver" + }, + { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalableTarget" + }, + { + "$ref": "#/definitions/AWS::ApplicationAutoScaling::ScalingPolicy" + }, + { + "$ref": "#/definitions/AWS::ApplicationInsights::Application" + }, + { + "$ref": "#/definitions/AWS::Athena::DataCatalog" + }, + { + "$ref": "#/definitions/AWS::Athena::NamedQuery" + }, + { + "$ref": "#/definitions/AWS::Athena::PreparedStatement" + }, + { + "$ref": "#/definitions/AWS::Athena::WorkGroup" + }, + { + "$ref": "#/definitions/AWS::AuditManager::Assessment" + }, + { + "$ref": "#/definitions/AWS::AutoScaling::AutoScalingGroup" + }, + { + "$ref": "#/definitions/AWS::AutoScaling::LaunchConfiguration" + }, + { + "$ref": "#/definitions/AWS::AutoScaling::LifecycleHook" + }, + { + "$ref": "#/definitions/AWS::AutoScaling::ScalingPolicy" + }, + { + "$ref": "#/definitions/AWS::AutoScaling::ScheduledAction" + }, + { + "$ref": "#/definitions/AWS::AutoScaling::WarmPool" + }, + { + "$ref": "#/definitions/AWS::AutoScalingPlans::ScalingPlan" + }, + { + "$ref": "#/definitions/AWS::Backup::BackupPlan" + }, + { + "$ref": "#/definitions/AWS::Backup::BackupSelection" + }, + { + "$ref": "#/definitions/AWS::Backup::BackupVault" + }, + { + "$ref": "#/definitions/AWS::Backup::Framework" + }, + { + "$ref": "#/definitions/AWS::Backup::ReportPlan" + }, + { + "$ref": "#/definitions/AWS::Batch::ComputeEnvironment" + }, + { + "$ref": "#/definitions/AWS::Batch::JobDefinition" + }, + { + "$ref": "#/definitions/AWS::Batch::JobQueue" + }, + { + "$ref": "#/definitions/AWS::Batch::SchedulingPolicy" + }, + { + "$ref": "#/definitions/AWS::BillingConductor::BillingGroup" + }, + { + "$ref": "#/definitions/AWS::BillingConductor::CustomLineItem" + }, + { + "$ref": "#/definitions/AWS::BillingConductor::PricingPlan" + }, + { + "$ref": "#/definitions/AWS::BillingConductor::PricingRule" + }, + { + "$ref": "#/definitions/AWS::Budgets::Budget" + }, + { + "$ref": "#/definitions/AWS::Budgets::BudgetsAction" + }, + { + "$ref": "#/definitions/AWS::CE::AnomalyMonitor" + }, + { + "$ref": "#/definitions/AWS::CE::AnomalySubscription" + }, + { + "$ref": "#/definitions/AWS::CE::CostCategory" + }, + { + "$ref": "#/definitions/AWS::CUR::ReportDefinition" + }, + { + "$ref": "#/definitions/AWS::Cassandra::Keyspace" + }, + { + "$ref": "#/definitions/AWS::Cassandra::Table" + }, + { + "$ref": "#/definitions/AWS::CertificateManager::Account" + }, + { + "$ref": "#/definitions/AWS::CertificateManager::Certificate" + }, + { + "$ref": "#/definitions/AWS::Chatbot::SlackChannelConfiguration" + }, + { + "$ref": "#/definitions/AWS::Cloud9::EnvironmentEC2" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::CustomResource" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookTypeConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::HookVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::Macro" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::ModuleDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::ModuleVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::PublicTypeVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::Publisher" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::ResourceDefaultVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::ResourceVersion" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::Stack" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::StackSet" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::TypeActivation" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::WaitCondition" + }, + { + "$ref": "#/definitions/AWS::CloudFormation::WaitConditionHandle" + }, + { + "$ref": "#/definitions/AWS::CloudFront::CachePolicy" + }, + { + "$ref": "#/definitions/AWS::CloudFront::CloudFrontOriginAccessIdentity" + }, + { + "$ref": "#/definitions/AWS::CloudFront::ContinuousDeploymentPolicy" + }, + { + "$ref": "#/definitions/AWS::CloudFront::Distribution" + }, + { + "$ref": "#/definitions/AWS::CloudFront::Function" + }, + { + "$ref": "#/definitions/AWS::CloudFront::KeyGroup" + }, + { + "$ref": "#/definitions/AWS::CloudFront::MonitoringSubscription" + }, + { + "$ref": "#/definitions/AWS::CloudFront::OriginAccessControl" + }, + { + "$ref": "#/definitions/AWS::CloudFront::OriginRequestPolicy" + }, + { + "$ref": "#/definitions/AWS::CloudFront::PublicKey" + }, + { + "$ref": "#/definitions/AWS::CloudFront::RealtimeLogConfig" + }, + { + "$ref": "#/definitions/AWS::CloudFront::ResponseHeadersPolicy" + }, + { + "$ref": "#/definitions/AWS::CloudFront::StreamingDistribution" + }, + { + "$ref": "#/definitions/AWS::CloudTrail::EventDataStore" + }, + { + "$ref": "#/definitions/AWS::CloudTrail::Trail" + }, + { + "$ref": "#/definitions/AWS::CloudWatch::Alarm" + }, + { + "$ref": "#/definitions/AWS::CloudWatch::AnomalyDetector" + }, + { + "$ref": "#/definitions/AWS::CloudWatch::CompositeAlarm" + }, + { + "$ref": "#/definitions/AWS::CloudWatch::Dashboard" + }, + { + "$ref": "#/definitions/AWS::CloudWatch::InsightRule" + }, + { + "$ref": "#/definitions/AWS::CloudWatch::MetricStream" + }, + { + "$ref": "#/definitions/AWS::CodeArtifact::Domain" + }, + { + "$ref": "#/definitions/AWS::CodeArtifact::Repository" + }, + { + "$ref": "#/definitions/AWS::CodeBuild::Project" + }, + { + "$ref": "#/definitions/AWS::CodeBuild::ReportGroup" + }, + { + "$ref": "#/definitions/AWS::CodeBuild::SourceCredential" + }, + { + "$ref": "#/definitions/AWS::CodeCommit::Repository" + }, + { + "$ref": "#/definitions/AWS::CodeDeploy::Application" + }, + { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentConfig" + }, + { + "$ref": "#/definitions/AWS::CodeDeploy::DeploymentGroup" + }, + { + "$ref": "#/definitions/AWS::CodeGuruProfiler::ProfilingGroup" + }, + { + "$ref": "#/definitions/AWS::CodeGuruReviewer::RepositoryAssociation" + }, + { + "$ref": "#/definitions/AWS::CodePipeline::CustomActionType" + }, + { + "$ref": "#/definitions/AWS::CodePipeline::Pipeline" + }, + { + "$ref": "#/definitions/AWS::CodePipeline::Webhook" + }, + { + "$ref": "#/definitions/AWS::CodeStar::GitHubRepository" + }, + { + "$ref": "#/definitions/AWS::CodeStarConnections::Connection" + }, + { + "$ref": "#/definitions/AWS::CodeStarNotifications::NotificationRule" + }, + { + "$ref": "#/definitions/AWS::Cognito::IdentityPool" + }, + { + "$ref": "#/definitions/AWS::Cognito::IdentityPoolRoleAttachment" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPool" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolClient" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolDomain" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolGroup" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolIdentityProvider" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolResourceServer" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolRiskConfigurationAttachment" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolUICustomizationAttachment" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolUser" + }, + { + "$ref": "#/definitions/AWS::Cognito::UserPoolUserToGroupAttachment" + }, + { + "$ref": "#/definitions/AWS::Config::AggregationAuthorization" + }, + { + "$ref": "#/definitions/AWS::Config::ConfigRule" + }, + { + "$ref": "#/definitions/AWS::Config::ConfigurationAggregator" + }, + { + "$ref": "#/definitions/AWS::Config::ConfigurationRecorder" + }, + { + "$ref": "#/definitions/AWS::Config::ConformancePack" + }, + { + "$ref": "#/definitions/AWS::Config::DeliveryChannel" + }, + { + "$ref": "#/definitions/AWS::Config::OrganizationConfigRule" + }, + { + "$ref": "#/definitions/AWS::Config::OrganizationConformancePack" + }, + { + "$ref": "#/definitions/AWS::Config::RemediationConfiguration" + }, + { + "$ref": "#/definitions/AWS::Config::StoredQuery" + }, + { + "$ref": "#/definitions/AWS::Connect::ContactFlow" + }, + { + "$ref": "#/definitions/AWS::Connect::ContactFlowModule" + }, + { + "$ref": "#/definitions/AWS::Connect::HoursOfOperation" + }, + { + "$ref": "#/definitions/AWS::Connect::Instance" + }, + { + "$ref": "#/definitions/AWS::Connect::InstanceStorageConfig" + }, + { + "$ref": "#/definitions/AWS::Connect::PhoneNumber" + }, + { + "$ref": "#/definitions/AWS::Connect::QuickConnect" + }, + { + "$ref": "#/definitions/AWS::Connect::Rule" + }, + { + "$ref": "#/definitions/AWS::Connect::TaskTemplate" + }, + { + "$ref": "#/definitions/AWS::Connect::User" + }, + { + "$ref": "#/definitions/AWS::Connect::UserHierarchyGroup" + }, + { + "$ref": "#/definitions/AWS::ConnectCampaigns::Campaign" + }, + { + "$ref": "#/definitions/AWS::ControlTower::EnabledControl" + }, + { + "$ref": "#/definitions/AWS::CustomerProfiles::Domain" + }, + { + "$ref": "#/definitions/AWS::CustomerProfiles::Integration" + }, + { + "$ref": "#/definitions/AWS::CustomerProfiles::ObjectType" + }, + { + "$ref": "#/definitions/AWS::DAX::Cluster" + }, + { + "$ref": "#/definitions/AWS::DAX::ParameterGroup" + }, + { + "$ref": "#/definitions/AWS::DAX::SubnetGroup" + }, + { + "$ref": "#/definitions/AWS::DLM::LifecyclePolicy" + }, + { + "$ref": "#/definitions/AWS::DMS::Certificate" + }, + { + "$ref": "#/definitions/AWS::DMS::Endpoint" + }, + { + "$ref": "#/definitions/AWS::DMS::EventSubscription" + }, + { + "$ref": "#/definitions/AWS::DMS::ReplicationInstance" + }, + { + "$ref": "#/definitions/AWS::DMS::ReplicationSubnetGroup" + }, + { + "$ref": "#/definitions/AWS::DMS::ReplicationTask" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Dataset" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Job" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Project" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Recipe" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Ruleset" + }, + { + "$ref": "#/definitions/AWS::DataBrew::Schedule" + }, + { + "$ref": "#/definitions/AWS::DataPipeline::Pipeline" + }, + { + "$ref": "#/definitions/AWS::DataSync::Agent" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationEFS" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationFSxLustre" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationFSxONTAP" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationFSxOpenZFS" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationFSxWindows" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationHDFS" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationNFS" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationObjectStorage" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationS3" + }, + { + "$ref": "#/definitions/AWS::DataSync::LocationSMB" + }, + { + "$ref": "#/definitions/AWS::DataSync::Task" + }, + { + "$ref": "#/definitions/AWS::Detective::Graph" + }, + { + "$ref": "#/definitions/AWS::Detective::MemberInvitation" + }, + { + "$ref": "#/definitions/AWS::DevOpsGuru::NotificationChannel" + }, + { + "$ref": "#/definitions/AWS::DevOpsGuru::ResourceCollection" + }, + { + "$ref": "#/definitions/AWS::DirectoryService::MicrosoftAD" + }, + { + "$ref": "#/definitions/AWS::DirectoryService::SimpleAD" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBCluster" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBInstance" + }, + { + "$ref": "#/definitions/AWS::DocDB::DBSubnetGroup" + }, + { + "$ref": "#/definitions/AWS::DocDBElastic::Cluster" + }, + { + "$ref": "#/definitions/AWS::DynamoDB::GlobalTable" + }, + { + "$ref": "#/definitions/AWS::DynamoDB::Table" + }, + { + "$ref": "#/definitions/AWS::EC2::CapacityReservation" + }, + { + "$ref": "#/definitions/AWS::EC2::CapacityReservationFleet" + }, + { + "$ref": "#/definitions/AWS::EC2::CarrierGateway" + }, + { + "$ref": "#/definitions/AWS::EC2::ClientVpnAuthorizationRule" + }, + { + "$ref": "#/definitions/AWS::EC2::ClientVpnEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::ClientVpnRoute" + }, + { + "$ref": "#/definitions/AWS::EC2::ClientVpnTargetNetworkAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::CustomerGateway" + }, + { + "$ref": "#/definitions/AWS::EC2::DHCPOptions" + }, + { + "$ref": "#/definitions/AWS::EC2::EC2Fleet" + }, + { + "$ref": "#/definitions/AWS::EC2::EIP" + }, + { + "$ref": "#/definitions/AWS::EC2::EIPAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::EgressOnlyInternetGateway" + }, + { + "$ref": "#/definitions/AWS::EC2::EnclaveCertificateIamRoleAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::FlowLog" + }, + { + "$ref": "#/definitions/AWS::EC2::GatewayRouteTableAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::Host" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAM" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAMAllocation" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAMPool" + }, + { + "$ref": "#/definitions/AWS::EC2::IPAMScope" + }, + { + "$ref": "#/definitions/AWS::EC2::Instance" + }, + { + "$ref": "#/definitions/AWS::EC2::InternetGateway" + }, + { + "$ref": "#/definitions/AWS::EC2::KeyPair" + }, + { + "$ref": "#/definitions/AWS::EC2::LaunchTemplate" + }, + { + "$ref": "#/definitions/AWS::EC2::LocalGatewayRoute" + }, + { + "$ref": "#/definitions/AWS::EC2::LocalGatewayRouteTableVPCAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::NatGateway" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkAcl" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkAclEntry" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScope" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAccessScopeAnalysis" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsAnalysis" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkInsightsPath" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkInterface" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkInterfaceAttachment" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkInterfacePermission" + }, + { + "$ref": "#/definitions/AWS::EC2::NetworkPerformanceMetricSubscription" + }, + { + "$ref": "#/definitions/AWS::EC2::PlacementGroup" + }, + { + "$ref": "#/definitions/AWS::EC2::PrefixList" + }, + { + "$ref": "#/definitions/AWS::EC2::Route" + }, + { + "$ref": "#/definitions/AWS::EC2::RouteTable" + }, + { + "$ref": "#/definitions/AWS::EC2::SecurityGroup" + }, + { + "$ref": "#/definitions/AWS::EC2::SecurityGroupEgress" + }, + { + "$ref": "#/definitions/AWS::EC2::SecurityGroupIngress" + }, + { + "$ref": "#/definitions/AWS::EC2::SpotFleet" + }, + { + "$ref": "#/definitions/AWS::EC2::Subnet" + }, + { + "$ref": "#/definitions/AWS::EC2::SubnetCidrBlock" + }, + { + "$ref": "#/definitions/AWS::EC2::SubnetNetworkAclAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::SubnetRouteTableAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilter" + }, + { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorFilterRule" + }, + { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorSession" + }, + { + "$ref": "#/definitions/AWS::EC2::TrafficMirrorTarget" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGateway" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayAttachment" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayConnect" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomain" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastDomainAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastGroupMember" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayMulticastGroupSource" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayPeeringAttachment" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayRoute" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTable" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTableAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayRouteTablePropagation" + }, + { + "$ref": "#/definitions/AWS::EC2::TransitGatewayVpcAttachment" + }, + { + "$ref": "#/definitions/AWS::EC2::VPC" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCCidrBlock" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCDHCPOptionsAssociation" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCEndpoint" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCEndpointConnectionNotification" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCEndpointService" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCEndpointServicePermissions" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCGatewayAttachment" + }, + { + "$ref": "#/definitions/AWS::EC2::VPCPeeringConnection" + }, + { + "$ref": "#/definitions/AWS::EC2::VPNConnection" + }, + { + "$ref": "#/definitions/AWS::EC2::VPNConnectionRoute" + }, + { + "$ref": "#/definitions/AWS::EC2::VPNGateway" + }, + { + "$ref": "#/definitions/AWS::EC2::VPNGatewayRoutePropagation" + }, + { + "$ref": "#/definitions/AWS::EC2::Volume" + }, + { + "$ref": "#/definitions/AWS::EC2::VolumeAttachment" + }, + { + "$ref": "#/definitions/AWS::ECR::PublicRepository" + }, + { + "$ref": "#/definitions/AWS::ECR::PullThroughCacheRule" + }, + { + "$ref": "#/definitions/AWS::ECR::RegistryPolicy" + }, + { + "$ref": "#/definitions/AWS::ECR::ReplicationConfiguration" + }, + { + "$ref": "#/definitions/AWS::ECR::Repository" + }, + { + "$ref": "#/definitions/AWS::ECS::CapacityProvider" + }, + { + "$ref": "#/definitions/AWS::ECS::Cluster" + }, + { + "$ref": "#/definitions/AWS::ECS::ClusterCapacityProviderAssociations" + }, + { + "$ref": "#/definitions/AWS::ECS::PrimaryTaskSet" + }, + { + "$ref": "#/definitions/AWS::ECS::Service" + }, + { + "$ref": "#/definitions/AWS::ECS::TaskDefinition" + }, + { + "$ref": "#/definitions/AWS::ECS::TaskSet" + }, + { + "$ref": "#/definitions/AWS::EFS::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::EFS::FileSystem" + }, + { + "$ref": "#/definitions/AWS::EFS::MountTarget" + }, + { + "$ref": "#/definitions/AWS::EKS::Addon" + }, + { + "$ref": "#/definitions/AWS::EKS::Cluster" + }, + { + "$ref": "#/definitions/AWS::EKS::FargateProfile" + }, + { + "$ref": "#/definitions/AWS::EKS::IdentityProviderConfig" + }, + { + "$ref": "#/definitions/AWS::EKS::Nodegroup" + }, + { + "$ref": "#/definitions/AWS::EMR::Cluster" + }, + { + "$ref": "#/definitions/AWS::EMR::InstanceFleetConfig" + }, + { + "$ref": "#/definitions/AWS::EMR::InstanceGroupConfig" + }, + { + "$ref": "#/definitions/AWS::EMR::SecurityConfiguration" + }, + { + "$ref": "#/definitions/AWS::EMR::Step" + }, + { + "$ref": "#/definitions/AWS::EMR::Studio" + }, + { + "$ref": "#/definitions/AWS::EMR::StudioSessionMapping" + }, + { + "$ref": "#/definitions/AWS::EMRContainers::VirtualCluster" + }, + { + "$ref": "#/definitions/AWS::EMRServerless::Application" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::CacheCluster" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::GlobalReplicationGroup" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::ParameterGroup" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::ReplicationGroup" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::SecurityGroup" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::SecurityGroupIngress" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::SubnetGroup" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::User" + }, + { + "$ref": "#/definitions/AWS::ElastiCache::UserGroup" + }, + { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Application" + }, + { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ApplicationVersion" + }, + { + "$ref": "#/definitions/AWS::ElasticBeanstalk::ConfigurationTemplate" + }, + { + "$ref": "#/definitions/AWS::ElasticBeanstalk::Environment" + }, + { + "$ref": "#/definitions/AWS::ElasticLoadBalancing::LoadBalancer" + }, + { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::Listener" + }, + { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerCertificate" + }, + { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::ListenerRule" + }, + { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::LoadBalancer" + }, + { + "$ref": "#/definitions/AWS::ElasticLoadBalancingV2::TargetGroup" + }, + { + "$ref": "#/definitions/AWS::Elasticsearch::Domain" + }, + { + "$ref": "#/definitions/AWS::EventSchemas::Discoverer" + }, + { + "$ref": "#/definitions/AWS::EventSchemas::Registry" + }, + { + "$ref": "#/definitions/AWS::EventSchemas::RegistryPolicy" + }, + { + "$ref": "#/definitions/AWS::EventSchemas::Schema" + }, + { + "$ref": "#/definitions/AWS::Events::ApiDestination" + }, + { + "$ref": "#/definitions/AWS::Events::Archive" + }, + { + "$ref": "#/definitions/AWS::Events::Connection" + }, + { + "$ref": "#/definitions/AWS::Events::Endpoint" + }, + { + "$ref": "#/definitions/AWS::Events::EventBus" + }, + { + "$ref": "#/definitions/AWS::Events::EventBusPolicy" + }, + { + "$ref": "#/definitions/AWS::Events::Rule" + }, + { + "$ref": "#/definitions/AWS::Evidently::Experiment" + }, + { + "$ref": "#/definitions/AWS::Evidently::Feature" + }, + { + "$ref": "#/definitions/AWS::Evidently::Launch" + }, + { + "$ref": "#/definitions/AWS::Evidently::Project" + }, + { + "$ref": "#/definitions/AWS::Evidently::Segment" + }, + { + "$ref": "#/definitions/AWS::FIS::ExperimentTemplate" + }, + { + "$ref": "#/definitions/AWS::FMS::NotificationChannel" + }, + { + "$ref": "#/definitions/AWS::FMS::Policy" + }, + { + "$ref": "#/definitions/AWS::FSx::DataRepositoryAssociation" + }, + { + "$ref": "#/definitions/AWS::FSx::FileSystem" + }, + { + "$ref": "#/definitions/AWS::FSx::Snapshot" + }, + { + "$ref": "#/definitions/AWS::FSx::StorageVirtualMachine" + }, + { + "$ref": "#/definitions/AWS::FSx::Volume" + }, + { + "$ref": "#/definitions/AWS::FinSpace::Environment" + }, + { + "$ref": "#/definitions/AWS::Forecast::Dataset" + }, + { + "$ref": "#/definitions/AWS::Forecast::DatasetGroup" + }, + { + "$ref": "#/definitions/AWS::FraudDetector::Detector" + }, + { + "$ref": "#/definitions/AWS::FraudDetector::EntityType" + }, + { + "$ref": "#/definitions/AWS::FraudDetector::EventType" + }, + { + "$ref": "#/definitions/AWS::FraudDetector::Label" + }, + { + "$ref": "#/definitions/AWS::FraudDetector::Outcome" + }, + { + "$ref": "#/definitions/AWS::FraudDetector::Variable" + }, + { + "$ref": "#/definitions/AWS::GameLift::Alias" + }, + { + "$ref": "#/definitions/AWS::GameLift::Build" + }, + { + "$ref": "#/definitions/AWS::GameLift::Fleet" + }, + { + "$ref": "#/definitions/AWS::GameLift::GameServerGroup" + }, + { + "$ref": "#/definitions/AWS::GameLift::GameSessionQueue" + }, + { + "$ref": "#/definitions/AWS::GameLift::Location" + }, + { + "$ref": "#/definitions/AWS::GameLift::MatchmakingConfiguration" + }, + { + "$ref": "#/definitions/AWS::GameLift::MatchmakingRuleSet" + }, + { + "$ref": "#/definitions/AWS::GameLift::Script" + }, + { + "$ref": "#/definitions/AWS::GlobalAccelerator::Accelerator" + }, + { + "$ref": "#/definitions/AWS::GlobalAccelerator::EndpointGroup" + }, + { + "$ref": "#/definitions/AWS::GlobalAccelerator::Listener" + }, + { + "$ref": "#/definitions/AWS::Glue::Classifier" + }, + { + "$ref": "#/definitions/AWS::Glue::Connection" + }, + { + "$ref": "#/definitions/AWS::Glue::Crawler" + }, + { + "$ref": "#/definitions/AWS::Glue::DataCatalogEncryptionSettings" + }, + { + "$ref": "#/definitions/AWS::Glue::Database" + }, + { + "$ref": "#/definitions/AWS::Glue::DevEndpoint" + }, + { + "$ref": "#/definitions/AWS::Glue::Job" + }, + { + "$ref": "#/definitions/AWS::Glue::MLTransform" + }, + { + "$ref": "#/definitions/AWS::Glue::Partition" + }, + { + "$ref": "#/definitions/AWS::Glue::Registry" + }, + { + "$ref": "#/definitions/AWS::Glue::Schema" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersion" + }, + { + "$ref": "#/definitions/AWS::Glue::SchemaVersionMetadata" + }, + { + "$ref": "#/definitions/AWS::Glue::SecurityConfiguration" + }, + { + "$ref": "#/definitions/AWS::Glue::Table" + }, + { + "$ref": "#/definitions/AWS::Glue::Trigger" + }, + { + "$ref": "#/definitions/AWS::Glue::Workflow" + }, + { + "$ref": "#/definitions/AWS::Grafana::Workspace" + }, + { + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinition" + }, + { + "$ref": "#/definitions/AWS::Greengrass::ConnectorDefinitionVersion" + }, + { + "$ref": "#/definitions/AWS::Greengrass::CoreDefinition" + }, + { + "$ref": "#/definitions/AWS::Greengrass::CoreDefinitionVersion" + }, + { + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinition" + }, + { + "$ref": "#/definitions/AWS::Greengrass::DeviceDefinitionVersion" + }, + { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinition" + }, + { + "$ref": "#/definitions/AWS::Greengrass::FunctionDefinitionVersion" + }, + { + "$ref": "#/definitions/AWS::Greengrass::Group" + }, + { + "$ref": "#/definitions/AWS::Greengrass::GroupVersion" + }, + { + "$ref": "#/definitions/AWS::Greengrass::LoggerDefinition" + }, + { + "$ref": "#/definitions/AWS::Greengrass::LoggerDefinitionVersion" + }, + { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinition" + }, + { + "$ref": "#/definitions/AWS::Greengrass::ResourceDefinitionVersion" + }, + { + "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinition" + }, + { + "$ref": "#/definitions/AWS::Greengrass::SubscriptionDefinitionVersion" + }, + { + "$ref": "#/definitions/AWS::GreengrassV2::ComponentVersion" + }, + { + "$ref": "#/definitions/AWS::GreengrassV2::Deployment" + }, + { + "$ref": "#/definitions/AWS::GroundStation::Config" + }, + { + "$ref": "#/definitions/AWS::GroundStation::DataflowEndpointGroup" + }, + { + "$ref": "#/definitions/AWS::GroundStation::MissionProfile" + }, + { + "$ref": "#/definitions/AWS::GuardDuty::Detector" + }, + { + "$ref": "#/definitions/AWS::GuardDuty::Filter" + }, + { + "$ref": "#/definitions/AWS::GuardDuty::IPSet" + }, + { + "$ref": "#/definitions/AWS::GuardDuty::Master" + }, + { + "$ref": "#/definitions/AWS::GuardDuty::Member" + }, + { + "$ref": "#/definitions/AWS::GuardDuty::ThreatIntelSet" + }, + { + "$ref": "#/definitions/AWS::HealthLake::FHIRDatastore" + }, + { + "$ref": "#/definitions/AWS::IAM::AccessKey" + }, + { + "$ref": "#/definitions/AWS::IAM::Group" + }, + { + "$ref": "#/definitions/AWS::IAM::InstanceProfile" + }, + { + "$ref": "#/definitions/AWS::IAM::ManagedPolicy" + }, + { + "$ref": "#/definitions/AWS::IAM::OIDCProvider" + }, + { + "$ref": "#/definitions/AWS::IAM::Policy" + }, + { + "$ref": "#/definitions/AWS::IAM::Role" + }, + { + "$ref": "#/definitions/AWS::IAM::SAMLProvider" + }, + { + "$ref": "#/definitions/AWS::IAM::ServerCertificate" + }, + { + "$ref": "#/definitions/AWS::IAM::ServiceLinkedRole" + }, + { + "$ref": "#/definitions/AWS::IAM::User" + }, + { + "$ref": "#/definitions/AWS::IAM::UserToGroupAddition" + }, + { + "$ref": "#/definitions/AWS::IAM::VirtualMFADevice" + }, + { + "$ref": "#/definitions/AWS::IVS::Channel" + }, + { + "$ref": "#/definitions/AWS::IVS::PlaybackKeyPair" + }, + { + "$ref": "#/definitions/AWS::IVS::RecordingConfiguration" + }, + { + "$ref": "#/definitions/AWS::IVS::StreamKey" + }, + { + "$ref": "#/definitions/AWS::IdentityStore::Group" + }, + { + "$ref": "#/definitions/AWS::IdentityStore::GroupMembership" + }, + { + "$ref": "#/definitions/AWS::ImageBuilder::Component" + }, + { + "$ref": "#/definitions/AWS::ImageBuilder::ContainerRecipe" + }, + { + "$ref": "#/definitions/AWS::ImageBuilder::DistributionConfiguration" + }, + { + "$ref": "#/definitions/AWS::ImageBuilder::Image" + }, + { + "$ref": "#/definitions/AWS::ImageBuilder::ImagePipeline" + }, + { + "$ref": "#/definitions/AWS::ImageBuilder::ImageRecipe" + }, + { + "$ref": "#/definitions/AWS::ImageBuilder::InfrastructureConfiguration" + }, + { + "$ref": "#/definitions/AWS::Inspector::AssessmentTarget" + }, + { + "$ref": "#/definitions/AWS::Inspector::AssessmentTemplate" + }, + { + "$ref": "#/definitions/AWS::Inspector::ResourceGroup" + }, + { + "$ref": "#/definitions/AWS::InspectorV2::Filter" + }, + { + "$ref": "#/definitions/AWS::IoT1Click::Device" + }, + { + "$ref": "#/definitions/AWS::IoT1Click::Placement" + }, + { + "$ref": "#/definitions/AWS::IoT1Click::Project" + }, + { + "$ref": "#/definitions/AWS::IoT::AccountAuditConfiguration" + }, + { + "$ref": "#/definitions/AWS::IoT::Authorizer" + }, + { + "$ref": "#/definitions/AWS::IoT::CACertificate" + }, + { + "$ref": "#/definitions/AWS::IoT::Certificate" + }, + { + "$ref": "#/definitions/AWS::IoT::CustomMetric" + }, + { + "$ref": "#/definitions/AWS::IoT::Dimension" + }, + { + "$ref": "#/definitions/AWS::IoT::DomainConfiguration" + }, + { + "$ref": "#/definitions/AWS::IoT::FleetMetric" + }, + { + "$ref": "#/definitions/AWS::IoT::JobTemplate" + }, + { + "$ref": "#/definitions/AWS::IoT::Logging" + }, + { + "$ref": "#/definitions/AWS::IoT::MitigationAction" + }, + { + "$ref": "#/definitions/AWS::IoT::Policy" + }, + { + "$ref": "#/definitions/AWS::IoT::PolicyPrincipalAttachment" + }, + { + "$ref": "#/definitions/AWS::IoT::ProvisioningTemplate" + }, + { + "$ref": "#/definitions/AWS::IoT::ResourceSpecificLogging" + }, + { + "$ref": "#/definitions/AWS::IoT::RoleAlias" + }, + { + "$ref": "#/definitions/AWS::IoT::ScheduledAudit" + }, + { + "$ref": "#/definitions/AWS::IoT::SecurityProfile" + }, + { + "$ref": "#/definitions/AWS::IoT::Thing" + }, + { + "$ref": "#/definitions/AWS::IoT::ThingPrincipalAttachment" + }, + { + "$ref": "#/definitions/AWS::IoT::TopicRule" + }, + { + "$ref": "#/definitions/AWS::IoT::TopicRuleDestination" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Channel" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Dataset" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Datastore" + }, + { + "$ref": "#/definitions/AWS::IoTAnalytics::Pipeline" + }, + { + "$ref": "#/definitions/AWS::IoTCoreDeviceAdvisor::SuiteDefinition" + }, + { + "$ref": "#/definitions/AWS::IoTEvents::AlarmModel" + }, + { + "$ref": "#/definitions/AWS::IoTEvents::DetectorModel" + }, + { + "$ref": "#/definitions/AWS::IoTEvents::Input" + }, + { + "$ref": "#/definitions/AWS::IoTFleetHub::Application" + }, + { + "$ref": "#/definitions/AWS::IoTFleetWise::Campaign" + }, + { + "$ref": "#/definitions/AWS::IoTFleetWise::DecoderManifest" + }, + { + "$ref": "#/definitions/AWS::IoTFleetWise::Fleet" + }, + { + "$ref": "#/definitions/AWS::IoTFleetWise::ModelManifest" + }, + { + "$ref": "#/definitions/AWS::IoTFleetWise::SignalCatalog" + }, + { + "$ref": "#/definitions/AWS::IoTFleetWise::Vehicle" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::AccessPolicy" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Asset" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::AssetModel" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Dashboard" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Gateway" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Portal" + }, + { + "$ref": "#/definitions/AWS::IoTSiteWise::Project" + }, + { + "$ref": "#/definitions/AWS::IoTThingsGraph::FlowTemplate" + }, + { + "$ref": "#/definitions/AWS::IoTTwinMaker::ComponentType" + }, + { + "$ref": "#/definitions/AWS::IoTTwinMaker::Entity" + }, + { + "$ref": "#/definitions/AWS::IoTTwinMaker::Scene" + }, + { + "$ref": "#/definitions/AWS::IoTTwinMaker::SyncJob" + }, + { + "$ref": "#/definitions/AWS::IoTTwinMaker::Workspace" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::Destination" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::DeviceProfile" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::FuotaTask" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::MulticastGroup" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::NetworkAnalyzerConfiguration" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::PartnerAccount" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::ServiceProfile" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::TaskDefinition" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::WirelessDevice" + }, + { + "$ref": "#/definitions/AWS::IoTWireless::WirelessGateway" + }, + { + "$ref": "#/definitions/AWS::KMS::Alias" + }, + { + "$ref": "#/definitions/AWS::KMS::Key" + }, + { + "$ref": "#/definitions/AWS::KMS::ReplicaKey" + }, + { + "$ref": "#/definitions/AWS::KafkaConnect::Connector" + }, + { + "$ref": "#/definitions/AWS::Kendra::DataSource" + }, + { + "$ref": "#/definitions/AWS::Kendra::Faq" + }, + { + "$ref": "#/definitions/AWS::Kendra::Index" + }, + { + "$ref": "#/definitions/AWS::Kinesis::Stream" + }, + { + "$ref": "#/definitions/AWS::Kinesis::StreamConsumer" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalytics::Application" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationOutput" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalytics::ApplicationReferenceDataSource" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::Application" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationOutput" + }, + { + "$ref": "#/definitions/AWS::KinesisAnalyticsV2::ApplicationReferenceDataSource" + }, + { + "$ref": "#/definitions/AWS::KinesisFirehose::DeliveryStream" + }, + { + "$ref": "#/definitions/AWS::KinesisVideo::SignalingChannel" + }, + { + "$ref": "#/definitions/AWS::KinesisVideo::Stream" + }, + { + "$ref": "#/definitions/AWS::LakeFormation::DataCellsFilter" + }, + { + "$ref": "#/definitions/AWS::LakeFormation::DataLakeSettings" + }, + { + "$ref": "#/definitions/AWS::LakeFormation::Permissions" + }, + { + "$ref": "#/definitions/AWS::LakeFormation::PrincipalPermissions" + }, + { + "$ref": "#/definitions/AWS::LakeFormation::Resource" + }, + { + "$ref": "#/definitions/AWS::LakeFormation::Tag" + }, + { + "$ref": "#/definitions/AWS::LakeFormation::TagAssociation" + }, + { + "$ref": "#/definitions/AWS::Lambda::Alias" + }, + { + "$ref": "#/definitions/AWS::Lambda::CodeSigningConfig" + }, + { + "$ref": "#/definitions/AWS::Lambda::EventInvokeConfig" + }, + { + "$ref": "#/definitions/AWS::Lambda::EventSourceMapping" + }, + { + "$ref": "#/definitions/AWS::Lambda::Function" + }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersion" + }, + { + "$ref": "#/definitions/AWS::Lambda::LayerVersionPermission" + }, + { + "$ref": "#/definitions/AWS::Lambda::Permission" + }, + { + "$ref": "#/definitions/AWS::Lambda::Url" + }, + { + "$ref": "#/definitions/AWS::Lambda::Version" + }, + { + "$ref": "#/definitions/AWS::Lex::Bot" + }, + { + "$ref": "#/definitions/AWS::Lex::BotAlias" + }, + { + "$ref": "#/definitions/AWS::Lex::BotVersion" + }, + { + "$ref": "#/definitions/AWS::Lex::ResourcePolicy" + }, + { + "$ref": "#/definitions/AWS::LicenseManager::Grant" + }, + { + "$ref": "#/definitions/AWS::LicenseManager::License" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Alarm" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Bucket" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Certificate" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Container" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Database" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Disk" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Distribution" + }, + { + "$ref": "#/definitions/AWS::Lightsail::Instance" + }, + { + "$ref": "#/definitions/AWS::Lightsail::LoadBalancer" + }, + { + "$ref": "#/definitions/AWS::Lightsail::LoadBalancerTlsCertificate" + }, + { + "$ref": "#/definitions/AWS::Lightsail::StaticIp" + }, + { + "$ref": "#/definitions/AWS::Location::GeofenceCollection" + }, + { + "$ref": "#/definitions/AWS::Location::Map" + }, + { + "$ref": "#/definitions/AWS::Location::PlaceIndex" + }, + { + "$ref": "#/definitions/AWS::Location::RouteCalculator" + }, + { + "$ref": "#/definitions/AWS::Location::Tracker" + }, + { + "$ref": "#/definitions/AWS::Location::TrackerConsumer" + }, + { + "$ref": "#/definitions/AWS::Logs::Destination" + }, + { + "$ref": "#/definitions/AWS::Logs::LogGroup" + }, + { + "$ref": "#/definitions/AWS::Logs::LogStream" + }, + { + "$ref": "#/definitions/AWS::Logs::MetricFilter" + }, + { + "$ref": "#/definitions/AWS::Logs::QueryDefinition" + }, + { + "$ref": "#/definitions/AWS::Logs::ResourcePolicy" + }, + { + "$ref": "#/definitions/AWS::Logs::SubscriptionFilter" + }, + { + "$ref": "#/definitions/AWS::LookoutEquipment::InferenceScheduler" + }, + { + "$ref": "#/definitions/AWS::LookoutMetrics::Alert" + }, + { + "$ref": "#/definitions/AWS::LookoutMetrics::AnomalyDetector" + }, + { + "$ref": "#/definitions/AWS::LookoutVision::Project" + }, + { + "$ref": "#/definitions/AWS::M2::Application" + }, + { + "$ref": "#/definitions/AWS::M2::Environment" + }, + { + "$ref": "#/definitions/AWS::MSK::BatchScramSecret" + }, + { + "$ref": "#/definitions/AWS::MSK::Cluster" + }, + { + "$ref": "#/definitions/AWS::MSK::Configuration" + }, + { + "$ref": "#/definitions/AWS::MSK::ServerlessCluster" + }, + { + "$ref": "#/definitions/AWS::MWAA::Environment" + }, + { + "$ref": "#/definitions/AWS::Macie::AllowList" + }, + { + "$ref": "#/definitions/AWS::Macie::CustomDataIdentifier" + }, + { + "$ref": "#/definitions/AWS::Macie::FindingsFilter" + }, + { + "$ref": "#/definitions/AWS::Macie::Session" + }, + { + "$ref": "#/definitions/AWS::ManagedBlockchain::Member" + }, + { + "$ref": "#/definitions/AWS::ManagedBlockchain::Node" + }, + { + "$ref": "#/definitions/AWS::MediaConnect::Flow" + }, + { + "$ref": "#/definitions/AWS::MediaConnect::FlowEntitlement" + }, + { + "$ref": "#/definitions/AWS::MediaConnect::FlowOutput" + }, + { + "$ref": "#/definitions/AWS::MediaConnect::FlowSource" + }, + { + "$ref": "#/definitions/AWS::MediaConnect::FlowVpcInterface" + }, + { + "$ref": "#/definitions/AWS::MediaConvert::JobTemplate" + }, + { + "$ref": "#/definitions/AWS::MediaConvert::Preset" + }, + { + "$ref": "#/definitions/AWS::MediaConvert::Queue" + }, + { + "$ref": "#/definitions/AWS::MediaLive::Channel" + }, + { + "$ref": "#/definitions/AWS::MediaLive::Input" + }, + { + "$ref": "#/definitions/AWS::MediaLive::InputSecurityGroup" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::Asset" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::Channel" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::OriginEndpoint" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingConfiguration" + }, + { + "$ref": "#/definitions/AWS::MediaPackage::PackagingGroup" + }, + { + "$ref": "#/definitions/AWS::MediaStore::Container" + }, + { + "$ref": "#/definitions/AWS::MediaTailor::PlaybackConfiguration" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::ACL" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::Cluster" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::ParameterGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::SubnetGroup" + }, + { + "$ref": "#/definitions/AWS::MemoryDB::User" + }, + { + "$ref": "#/definitions/AWS::Neptune::DBCluster" + }, + { + "$ref": "#/definitions/AWS::Neptune::DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::Neptune::DBInstance" + }, + { + "$ref": "#/definitions/AWS::Neptune::DBParameterGroup" + }, + { + "$ref": "#/definitions/AWS::Neptune::DBSubnetGroup" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::Firewall" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::FirewallPolicy" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::NetworkFirewall::RuleGroup" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::ConnectAttachment" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::ConnectPeer" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::CoreNetwork" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::CustomerGatewayAssociation" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::Device" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::GlobalNetwork" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::Link" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::LinkAssociation" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::Site" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::SiteToSiteVpnAttachment" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::TransitGatewayRegistration" + }, + { + "$ref": "#/definitions/AWS::NetworkManager::VpcAttachment" + }, + { + "$ref": "#/definitions/AWS::NimbleStudio::LaunchProfile" + }, + { + "$ref": "#/definitions/AWS::NimbleStudio::StreamingImage" + }, + { + "$ref": "#/definitions/AWS::NimbleStudio::Studio" + }, + { + "$ref": "#/definitions/AWS::NimbleStudio::StudioComponent" + }, + { + "$ref": "#/definitions/AWS::Oam::Link" + }, + { + "$ref": "#/definitions/AWS::Oam::Sink" + }, + { + "$ref": "#/definitions/AWS::OpenSearchServerless::AccessPolicy" + }, + { + "$ref": "#/definitions/AWS::OpenSearchServerless::Collection" + }, + { + "$ref": "#/definitions/AWS::OpenSearchServerless::SecurityConfig" + }, + { + "$ref": "#/definitions/AWS::OpenSearchServerless::SecurityPolicy" + }, + { + "$ref": "#/definitions/AWS::OpenSearchServerless::VpcEndpoint" + }, + { + "$ref": "#/definitions/AWS::OpenSearchService::Domain" + }, + { + "$ref": "#/definitions/AWS::OpsWorks::App" + }, + { + "$ref": "#/definitions/AWS::OpsWorks::ElasticLoadBalancerAttachment" + }, + { + "$ref": "#/definitions/AWS::OpsWorks::Instance" + }, + { + "$ref": "#/definitions/AWS::OpsWorks::Layer" + }, + { + "$ref": "#/definitions/AWS::OpsWorks::Stack" + }, + { + "$ref": "#/definitions/AWS::OpsWorks::UserProfile" + }, + { + "$ref": "#/definitions/AWS::OpsWorks::Volume" + }, + { + "$ref": "#/definitions/AWS::OpsWorksCM::Server" + }, + { + "$ref": "#/definitions/AWS::Organizations::Account" + }, + { + "$ref": "#/definitions/AWS::Organizations::OrganizationalUnit" + }, + { + "$ref": "#/definitions/AWS::Organizations::Policy" + }, + { + "$ref": "#/definitions/AWS::Panorama::ApplicationInstance" + }, + { + "$ref": "#/definitions/AWS::Panorama::Package" + }, + { + "$ref": "#/definitions/AWS::Panorama::PackageVersion" + }, + { + "$ref": "#/definitions/AWS::Personalize::Dataset" + }, + { + "$ref": "#/definitions/AWS::Personalize::DatasetGroup" + }, + { + "$ref": "#/definitions/AWS::Personalize::Schema" + }, + { + "$ref": "#/definitions/AWS::Personalize::Solution" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::ADMChannel" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::APNSChannel" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::APNSSandboxChannel" + }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__Resource" + "$ref": "#/definitions/AWS::Pinpoint::APNSVoipChannel" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_function__Resource" + "$ref": "#/definitions/AWS::Pinpoint::APNSVoipSandboxChannel" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Resource" + "$ref": "#/definitions/AWS::Pinpoint::App" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Resource" + "$ref": "#/definitions/AWS::Pinpoint::ApplicationSettings" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_layerversion__Resource" + "$ref": "#/definitions/AWS::Pinpoint::BaiduChannel" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_api__Resource" + "$ref": "#/definitions/AWS::Pinpoint::Campaign" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_httpapi__Resource" + "$ref": "#/definitions/AWS::Pinpoint::EmailChannel" }, { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_application__Resource" + "$ref": "#/definitions/AWS::Pinpoint::EmailTemplate" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::EventStream" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::GCMChannel" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::InAppTemplate" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::PushTemplate" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::SMSChannel" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::Segment" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::SmsTemplate" + }, + { + "$ref": "#/definitions/AWS::Pinpoint::VoiceChannel" + }, + { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSet" + }, + { + "$ref": "#/definitions/AWS::PinpointEmail::ConfigurationSetEventDestination" + }, + { + "$ref": "#/definitions/AWS::PinpointEmail::DedicatedIpPool" + }, + { + "$ref": "#/definitions/AWS::PinpointEmail::Identity" + }, + { + "$ref": "#/definitions/AWS::Pipes::Pipe" + }, + { + "$ref": "#/definitions/AWS::QLDB::Ledger" + }, + { + "$ref": "#/definitions/AWS::QLDB::Stream" + }, + { + "$ref": "#/definitions/AWS::QuickSight::Analysis" + }, + { + "$ref": "#/definitions/AWS::QuickSight::Dashboard" + }, + { + "$ref": "#/definitions/AWS::QuickSight::DataSet" + }, + { + "$ref": "#/definitions/AWS::QuickSight::DataSource" + }, + { + "$ref": "#/definitions/AWS::QuickSight::Template" + }, + { + "$ref": "#/definitions/AWS::QuickSight::Theme" + }, + { + "$ref": "#/definitions/AWS::RAM::ResourceShare" + }, + { + "$ref": "#/definitions/AWS::RDS::DBCluster" + }, + { + "$ref": "#/definitions/AWS::RDS::DBClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::RDS::DBInstance" + }, + { + "$ref": "#/definitions/AWS::RDS::DBParameterGroup" + }, + { + "$ref": "#/definitions/AWS::RDS::DBProxy" + }, + { + "$ref": "#/definitions/AWS::RDS::DBProxyEndpoint" + }, + { + "$ref": "#/definitions/AWS::RDS::DBProxyTargetGroup" + }, + { + "$ref": "#/definitions/AWS::RDS::DBSecurityGroup" + }, + { + "$ref": "#/definitions/AWS::RDS::DBSecurityGroupIngress" + }, + { + "$ref": "#/definitions/AWS::RDS::DBSubnetGroup" + }, + { + "$ref": "#/definitions/AWS::RDS::EventSubscription" + }, + { + "$ref": "#/definitions/AWS::RDS::GlobalCluster" + }, + { + "$ref": "#/definitions/AWS::RDS::OptionGroup" + }, + { + "$ref": "#/definitions/AWS::RUM::AppMonitor" + }, + { + "$ref": "#/definitions/AWS::Redshift::Cluster" + }, + { + "$ref": "#/definitions/AWS::Redshift::ClusterParameterGroup" + }, + { + "$ref": "#/definitions/AWS::Redshift::ClusterSecurityGroup" + }, + { + "$ref": "#/definitions/AWS::Redshift::ClusterSecurityGroupIngress" + }, + { + "$ref": "#/definitions/AWS::Redshift::ClusterSubnetGroup" + }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAccess" + }, + { + "$ref": "#/definitions/AWS::Redshift::EndpointAuthorization" + }, + { + "$ref": "#/definitions/AWS::Redshift::EventSubscription" + }, + { + "$ref": "#/definitions/AWS::Redshift::ScheduledAction" + }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Namespace" + }, + { + "$ref": "#/definitions/AWS::RedshiftServerless::Workgroup" + }, + { + "$ref": "#/definitions/AWS::RefactorSpaces::Application" + }, + { + "$ref": "#/definitions/AWS::RefactorSpaces::Environment" + }, + { + "$ref": "#/definitions/AWS::RefactorSpaces::Route" + }, + { + "$ref": "#/definitions/AWS::RefactorSpaces::Service" + }, + { + "$ref": "#/definitions/AWS::Rekognition::Collection" + }, + { + "$ref": "#/definitions/AWS::Rekognition::Project" + }, + { + "$ref": "#/definitions/AWS::Rekognition::StreamProcessor" + }, + { + "$ref": "#/definitions/AWS::ResilienceHub::App" + }, + { + "$ref": "#/definitions/AWS::ResilienceHub::ResiliencyPolicy" + }, + { + "$ref": "#/definitions/AWS::ResourceExplorer2::DefaultViewAssociation" + }, + { + "$ref": "#/definitions/AWS::ResourceExplorer2::Index" + }, + { + "$ref": "#/definitions/AWS::ResourceExplorer2::View" + }, + { + "$ref": "#/definitions/AWS::ResourceGroups::Group" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::Fleet" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::Robot" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::RobotApplicationVersion" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplication" + }, + { + "$ref": "#/definitions/AWS::RoboMaker::SimulationApplicationVersion" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::CRL" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::Profile" + }, + { + "$ref": "#/definitions/AWS::RolesAnywhere::TrustAnchor" + }, + { + "$ref": "#/definitions/AWS::Route53::CidrCollection" + }, + { + "$ref": "#/definitions/AWS::Route53::DNSSEC" + }, + { + "$ref": "#/definitions/AWS::Route53::HealthCheck" + }, + { + "$ref": "#/definitions/AWS::Route53::HostedZone" + }, + { + "$ref": "#/definitions/AWS::Route53::KeySigningKey" + }, + { + "$ref": "#/definitions/AWS::Route53::RecordSet" + }, + { + "$ref": "#/definitions/AWS::Route53::RecordSetGroup" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryControl::Cluster" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryControl::ControlPanel" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryControl::RoutingControl" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryControl::SafetyRule" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::Cell" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ReadinessCheck" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::RecoveryGroup" + }, + { + "$ref": "#/definitions/AWS::Route53RecoveryReadiness::ResourceSet" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::FirewallDomainList" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroup" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::FirewallRuleGroupAssociation" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverConfig" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverDNSSECConfig" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverEndpoint" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverQueryLoggingConfig" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRule" + }, + { + "$ref": "#/definitions/AWS::Route53Resolver::ResolverRuleAssociation" + }, + { + "$ref": "#/definitions/AWS::S3::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3::Bucket" + }, + { + "$ref": "#/definitions/AWS::S3::BucketPolicy" + }, + { + "$ref": "#/definitions/AWS::S3::MultiRegionAccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3::MultiRegionAccessPointPolicy" + }, + { + "$ref": "#/definitions/AWS::S3::StorageLens" + }, + { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3ObjectLambda::AccessPointPolicy" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::AccessPoint" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Bucket" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::BucketPolicy" + }, + { + "$ref": "#/definitions/AWS::S3Outposts::Endpoint" + }, + { + "$ref": "#/definitions/AWS::SDB::Domain" + }, + { + "$ref": "#/definitions/AWS::SES::ConfigurationSet" + }, + { + "$ref": "#/definitions/AWS::SES::ConfigurationSetEventDestination" + }, + { + "$ref": "#/definitions/AWS::SES::ContactList" + }, + { + "$ref": "#/definitions/AWS::SES::DedicatedIpPool" + }, + { + "$ref": "#/definitions/AWS::SES::EmailIdentity" + }, + { + "$ref": "#/definitions/AWS::SES::ReceiptFilter" + }, + { + "$ref": "#/definitions/AWS::SES::ReceiptRule" + }, + { + "$ref": "#/definitions/AWS::SES::ReceiptRuleSet" + }, + { + "$ref": "#/definitions/AWS::SES::Template" + }, + { + "$ref": "#/definitions/AWS::SES::VdmAttributes" + }, + { + "$ref": "#/definitions/AWS::SNS::Subscription" + }, + { + "$ref": "#/definitions/AWS::SNS::Topic" + }, + { + "$ref": "#/definitions/AWS::SNS::TopicPolicy" + }, + { + "$ref": "#/definitions/AWS::SQS::Queue" + }, + { + "$ref": "#/definitions/AWS::SQS::QueuePolicy" + }, + { + "$ref": "#/definitions/AWS::SSM::Association" + }, + { + "$ref": "#/definitions/AWS::SSM::Document" + }, + { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindow" + }, + { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTarget" + }, + { + "$ref": "#/definitions/AWS::SSM::MaintenanceWindowTask" + }, + { + "$ref": "#/definitions/AWS::SSM::Parameter" + }, + { + "$ref": "#/definitions/AWS::SSM::PatchBaseline" + }, + { + "$ref": "#/definitions/AWS::SSM::ResourceDataSync" + }, + { + "$ref": "#/definitions/AWS::SSM::ResourcePolicy" + }, + { + "$ref": "#/definitions/AWS::SSMContacts::Contact" + }, + { + "$ref": "#/definitions/AWS::SSMContacts::ContactChannel" + }, + { + "$ref": "#/definitions/AWS::SSMIncidents::ReplicationSet" + }, + { + "$ref": "#/definitions/AWS::SSMIncidents::ResponsePlan" + }, + { + "$ref": "#/definitions/AWS::SSO::Assignment" + }, + { + "$ref": "#/definitions/AWS::SSO::InstanceAccessControlAttributeConfiguration" + }, + { + "$ref": "#/definitions/AWS::SSO::PermissionSet" + }, + { + "$ref": "#/definitions/AWS::SageMaker::App" + }, + { + "$ref": "#/definitions/AWS::SageMaker::AppImageConfig" + }, + { + "$ref": "#/definitions/AWS::SageMaker::CodeRepository" + }, + { + "$ref": "#/definitions/AWS::SageMaker::DataQualityJobDefinition" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Device" + }, + { + "$ref": "#/definitions/AWS::SageMaker::DeviceFleet" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Domain" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Endpoint" + }, + { + "$ref": "#/definitions/AWS::SageMaker::EndpointConfig" + }, + { + "$ref": "#/definitions/AWS::SageMaker::FeatureGroup" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Image" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ImageVersion" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Model" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ModelBiasJobDefinition" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ModelExplainabilityJobDefinition" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ModelPackage" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ModelPackageGroup" + }, + { + "$ref": "#/definitions/AWS::SageMaker::ModelQualityJobDefinition" + }, + { + "$ref": "#/definitions/AWS::SageMaker::MonitoringSchedule" + }, + { + "$ref": "#/definitions/AWS::SageMaker::NotebookInstance" + }, + { + "$ref": "#/definitions/AWS::SageMaker::NotebookInstanceLifecycleConfig" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Pipeline" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Project" + }, + { + "$ref": "#/definitions/AWS::SageMaker::UserProfile" + }, + { + "$ref": "#/definitions/AWS::SageMaker::Workteam" + }, + { + "$ref": "#/definitions/AWS::Scheduler::Schedule" + }, + { + "$ref": "#/definitions/AWS::Scheduler::ScheduleGroup" + }, + { + "$ref": "#/definitions/AWS::SecretsManager::ResourcePolicy" + }, + { + "$ref": "#/definitions/AWS::SecretsManager::RotationSchedule" + }, + { + "$ref": "#/definitions/AWS::SecretsManager::Secret" + }, + { + "$ref": "#/definitions/AWS::SecretsManager::SecretTargetAttachment" + }, + { + "$ref": "#/definitions/AWS::SecurityHub::Hub" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::AcceptedPortfolioShare" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProduct" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::CloudFormationProvisionedProduct" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::LaunchNotificationConstraint" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::LaunchRoleConstraint" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::LaunchTemplateConstraint" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::Portfolio" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::PortfolioPrincipalAssociation" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::PortfolioProductAssociation" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::PortfolioShare" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::ResourceUpdateConstraint" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::ServiceAction" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::ServiceActionAssociation" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::StackSetConstraint" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::TagOption" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalog::TagOptionAssociation" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::Application" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::AttributeGroup" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + }, + { + "$ref": "#/definitions/AWS::ServiceCatalogAppRegistry::ResourceAssociation" + }, + { + "$ref": "#/definitions/AWS::ServiceDiscovery::HttpNamespace" + }, + { + "$ref": "#/definitions/AWS::ServiceDiscovery::Instance" + }, + { + "$ref": "#/definitions/AWS::ServiceDiscovery::PrivateDnsNamespace" + }, + { + "$ref": "#/definitions/AWS::ServiceDiscovery::PublicDnsNamespace" + }, + { + "$ref": "#/definitions/AWS::ServiceDiscovery::Service" + }, + { + "$ref": "#/definitions/AWS::Signer::ProfilePermission" + }, + { + "$ref": "#/definitions/AWS::Signer::SigningProfile" + }, + { + "$ref": "#/definitions/AWS::StepFunctions::Activity" + }, + { + "$ref": "#/definitions/AWS::StepFunctions::StateMachine" + }, + { + "$ref": "#/definitions/AWS::SupportApp::AccountAlias" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackChannelConfiguration" + }, + { + "$ref": "#/definitions/AWS::SupportApp::SlackWorkspaceConfiguration" + }, + { + "$ref": "#/definitions/AWS::Synthetics::Canary" + }, + { + "$ref": "#/definitions/AWS::Synthetics::Group" + }, + { + "$ref": "#/definitions/AWS::Timestream::Database" + }, + { + "$ref": "#/definitions/AWS::Timestream::ScheduledQuery" + }, + { + "$ref": "#/definitions/AWS::Timestream::Table" + }, + { + "$ref": "#/definitions/AWS::Transfer::Agreement" + }, + { + "$ref": "#/definitions/AWS::Transfer::Certificate" + }, + { + "$ref": "#/definitions/AWS::Transfer::Connector" + }, + { + "$ref": "#/definitions/AWS::Transfer::Profile" + }, + { + "$ref": "#/definitions/AWS::Transfer::Server" + }, + { + "$ref": "#/definitions/AWS::Transfer::User" + }, + { + "$ref": "#/definitions/AWS::Transfer::Workflow" + }, + { + "$ref": "#/definitions/AWS::VoiceID::Domain" + }, + { + "$ref": "#/definitions/AWS::WAF::ByteMatchSet" + }, + { + "$ref": "#/definitions/AWS::WAF::IPSet" + }, + { + "$ref": "#/definitions/AWS::WAF::Rule" + }, + { + "$ref": "#/definitions/AWS::WAF::SizeConstraintSet" + }, + { + "$ref": "#/definitions/AWS::WAF::SqlInjectionMatchSet" + }, + { + "$ref": "#/definitions/AWS::WAF::WebACL" + }, + { + "$ref": "#/definitions/AWS::WAF::XssMatchSet" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::ByteMatchSet" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::GeoMatchSet" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::IPSet" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::RateBasedRule" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::RegexPatternSet" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::Rule" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::SizeConstraintSet" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::SqlInjectionMatchSet" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::WebACL" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::WebACLAssociation" + }, + { + "$ref": "#/definitions/AWS::WAFRegional::XssMatchSet" + }, + { + "$ref": "#/definitions/AWS::WAFv2::IPSet" + }, + { + "$ref": "#/definitions/AWS::WAFv2::LoggingConfiguration" + }, + { + "$ref": "#/definitions/AWS::WAFv2::RegexPatternSet" + }, + { + "$ref": "#/definitions/AWS::WAFv2::RuleGroup" + }, + { + "$ref": "#/definitions/AWS::WAFv2::WebACL" + }, + { + "$ref": "#/definitions/AWS::WAFv2::WebACLAssociation" + }, + { + "$ref": "#/definitions/AWS::Wisdom::Assistant" + }, + { + "$ref": "#/definitions/AWS::Wisdom::AssistantAssociation" + }, + { + "$ref": "#/definitions/AWS::Wisdom::KnowledgeBase" + }, + { + "$ref": "#/definitions/AWS::WorkSpaces::ConnectionAlias" + }, + { + "$ref": "#/definitions/AWS::WorkSpaces::Workspace" + }, + { + "$ref": "#/definitions/AWS::XRay::Group" + }, + { + "$ref": "#/definitions/AWS::XRay::ResourcePolicy" + }, + { + "$ref": "#/definitions/AWS::XRay::SamplingRule" + }, + { + "$ref": "#/definitions/Alexa::ASK::Skill" }, { - "$ref": "#/definitions/samtranslator__schema__any_cfn_resource__Resource" + "$ref": "#/definitions/CustomResource" } ] }, "title": "Resources", "type": "object" + }, + "Transform": { + "oneOf": [ + { + "type": [ + "string" + ] + }, + { + "items": { + "type": "string" + }, + "type": "array" + } + ] } }, "required": [ "Resources" ], - "title": "SamModel", + "title": "Model", "type": "object" } diff --git a/tests/schema/test_validate_schema.py b/tests/schema/test_validate_schema.py index 9514c7a3d..1ce7c3e8f 100644 --- a/tests/schema/test_validate_schema.py +++ b/tests/schema/test_validate_schema.py @@ -1,3 +1,4 @@ +import copy import json import pytest import os @@ -15,8 +16,8 @@ PROJECT_ROOT = Path(__file__).parent.parent.parent -SCHEMA = json.loads(PROJECT_ROOT.joinpath("samtranslator/schema/schema.json").read_bytes()) -UNIFIED_SCHEMA = json.loads(PROJECT_ROOT.joinpath("samtranslator/schema/unified.schema.json").read_bytes()) +SCHEMA = json.loads(PROJECT_ROOT.joinpath("samtranslator/schema/sam.schema.json").read_bytes()) +UNIFIED_SCHEMA = json.loads(PROJECT_ROOT.joinpath("samtranslator/schema/schema.json").read_bytes()) # TODO: Enable (most likely) everything but 'error_*' and 'basic_schema_validation_failure' SKIPPED_TESTS = [ @@ -128,6 +129,39 @@ def test_validate_unified_schema_error(self, testcase): with pytest.raises(ValidationError): validate(obj, schema=UNIFIED_SCHEMA) + def test_structure(self): + assert UNIFIED_SCHEMA["$schema"] == "http://json-schema.org/draft-04/schema#" + assert { + "AWSTemplateFormatVersion", + "Conditions", + "Description", + "Globals", + "Mappings", + "Metadata", + "Outputs", + "Parameters", + "Resources", + "Transform", + } == set(UNIFIED_SCHEMA["properties"].keys()) + assert len(UNIFIED_SCHEMA["properties"]["Resources"]["additionalProperties"]["anyOf"]) > 1000 + assert ( + "The set of properties must conform to the defined `Type`" + in UNIFIED_SCHEMA["definitions"]["samtranslator__schema__aws_serverless_statemachine__ApiEvent"][ + "properties" + ]["Properties"]["markdownDescription"] + ) + + # Contains all definitions from SAM-only schema (except rule that ignores non-SAM) + sam_defs = copy.deepcopy(SCHEMA["definitions"]) + del sam_defs["samtranslator__schema__any_cfn_resource__Resource"] + assert sam_defs.items() <= UNIFIED_SCHEMA["definitions"].items() + + # Contains all resources from SAM-only schema (except rule that ignores non-SAM) + unified_resources = UNIFIED_SCHEMA["properties"]["Resources"]["additionalProperties"]["anyOf"] + for v in SCHEMA["properties"]["Resources"]["additionalProperties"]["anyOf"]: + if v["$ref"] != "#/definitions/samtranslator__schema__any_cfn_resource__Resource": + assert v in unified_resources + @parameterized.expand( [ [ @@ -154,7 +188,6 @@ def test_validate_unified_schema_error(self, testcase): ], ) def test_sanity_valid(self, template): - assert UNIFIED_SCHEMA["$schema"] == "http://json-schema.org/draft-04/schema#" Draft4Validator(UNIFIED_SCHEMA).validate(template) validate(template, schema=UNIFIED_SCHEMA) From e84169862b73f6e5c3970cdf8e54f63315d2d08e Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 11:47:13 -0800 Subject: [PATCH 14/25] DependsOn unit test --- .../combination/embedded_connector.json | 2 +- .../embedded_connectors_esm_depends_on.yaml | 28 ++++ .../embedded_connectors_esm_depends_on.json | 132 ++++++++++++++++++ .../embedded_connectors_esm_depends_on.json | 132 ++++++++++++++++++ .../embedded_connectors_esm_depends_on.json | 132 ++++++++++++++++++ 5 files changed, 425 insertions(+), 1 deletion(-) create mode 100644 tests/translator/input/embedded_connectors_esm_depends_on.yaml create mode 100644 tests/translator/output/aws-cn/embedded_connectors_esm_depends_on.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_esm_depends_on.json create mode 100644 tests/translator/output/embedded_connectors_esm_depends_on.json diff --git a/integration/resources/expected/combination/embedded_connector.json b/integration/resources/expected/combination/embedded_connector.json index 927a18df2..cc4e8d82b 100644 --- a/integration/resources/expected/combination/embedded_connector.json +++ b/integration/resources/expected/combination/embedded_connector.json @@ -16,7 +16,7 @@ "ResourceType": "AWS::Lambda::Function" }, { - "LogicalResourceId": "MyConnectorPolicy", + "LogicalResourceId": "TriggerFunctionMyConnectorPolicy", "ResourceType": "AWS::IAM::ManagedPolicy" } ] diff --git a/tests/translator/input/embedded_connectors_esm_depends_on.yaml b/tests/translator/input/embedded_connectors_esm_depends_on.yaml new file mode 100644 index 000000000..2f7c32db8 --- /dev/null +++ b/tests/translator/input/embedded_connectors_esm_depends_on.yaml @@ -0,0 +1,28 @@ +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs16.x + Handler: index.handler + InlineCode: | + exports.handler = async (event) => { + console.log(event); + }; + + MyQueue: + Type: AWS::SQS::Queue + Connectors: + MyConnector: + Properties: + Destination: + Id: MyFunction + Permissions: + - Read + - Write + + MyEventSourceMapping: + DependsOn: MyQueueMyConnectorPolicy + Type: AWS::Lambda::EventSourceMapping + Properties: + FunctionName: !Ref MyFunction + EventSourceArn: !GetAtt MyQueue.Arn diff --git a/tests/translator/output/aws-cn/embedded_connectors_esm_depends_on.json b/tests/translator/output/aws-cn/embedded_connectors_esm_depends_on.json new file mode 100644 index 000000000..ae0f6b626 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_esm_depends_on.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyEventSourceMapping": { + "DependsOn": [ + "MyQueueMyConnectorPolicy" + ], + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "MyFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(event);\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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueueMyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyQueueMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_esm_depends_on.json b/tests/translator/output/aws-us-gov/embedded_connectors_esm_depends_on.json new file mode 100644 index 000000000..e91921ac3 --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_esm_depends_on.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyEventSourceMapping": { + "DependsOn": [ + "MyQueueMyConnectorPolicy" + ], + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "MyFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(event);\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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueueMyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyQueueMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/embedded_connectors_esm_depends_on.json b/tests/translator/output/embedded_connectors_esm_depends_on.json new file mode 100644 index 000000000..9377c6251 --- /dev/null +++ b/tests/translator/output/embedded_connectors_esm_depends_on.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyEventSourceMapping": { + "DependsOn": [ + "MyQueueMyConnectorPolicy" + ], + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "MyFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(event);\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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueueMyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyQueueMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} From b593fd21decb08af78befb8d2f9440481edf4b32 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 11:54:52 -0800 Subject: [PATCH 15/25] connector schema --- samtranslator/schema/aws_serverless_api.py | 11 +- .../schema/aws_serverless_function.py | 12 +- .../schema/aws_serverless_httpapi.py | 11 +- .../schema/aws_serverless_simpletable.py | 4 +- .../schema/aws_serverless_statemachine.py | 11 +- samtranslator/schema/sam.schema.json | 350 +++++++++++++----- samtranslator/schema/schema.json | 350 +++++++++++++----- 7 files changed, 567 insertions(+), 182 deletions(-) diff --git a/samtranslator/schema/aws_serverless_api.py b/samtranslator/schema/aws_serverless_api.py index e1b78f5e0..d675e5df1 100644 --- a/samtranslator/schema/aws_serverless_api.py +++ b/samtranslator/schema/aws_serverless_api.py @@ -4,7 +4,14 @@ from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, SamIntrinsicable, get_prop, DictStrAny +from samtranslator.schema.common import ( + PassThroughProp, + BaseModel, + SamIntrinsicable, + get_prop, + DictStrAny, + EmbeddedConnector, +) resourcepolicy = get_prop("sam-property-api-resourcepolicystatement") cognitoauthorizeridentity = get_prop("sam-property-api-cognitoauthorizationidentity") @@ -217,7 +224,7 @@ class Resource(BaseModel): Properties: Properties Condition: Optional[PassThroughProp] DeletionPolicy: Optional[PassThroughProp] - Connectors: Optional[PassThroughProp] + Connectors: Optional[Dict[str, EmbeddedConnector]] UpdatePolicy: Optional[PassThroughProp] UpdateReplacePolicy: Optional[PassThroughProp] DependsOn: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_function.py b/samtranslator/schema/aws_serverless_function.py index 6c272dd04..50e0f975f 100644 --- a/samtranslator/schema/aws_serverless_function.py +++ b/samtranslator/schema/aws_serverless_function.py @@ -4,7 +4,15 @@ from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, SamIntrinsicable, get_prop, DictStrAny, Ref +from samtranslator.schema.common import ( + PassThroughProp, + BaseModel, + SamIntrinsicable, + get_prop, + DictStrAny, + Ref, + EmbeddedConnector, +) alexaskilleventproperties = get_prop("sam-property-function-alexaskill") @@ -544,7 +552,7 @@ class Globals(BaseModel): class Resource(BaseModel): Type: Literal["AWS::Serverless::Function"] Properties: Optional[Properties] - Connectors: Optional[PassThroughProp] + Connectors: Optional[Dict[str, EmbeddedConnector]] DeletionPolicy: Optional[PassThroughProp] UpdateReplacePolicy: Optional[PassThroughProp] Condition: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_httpapi.py b/samtranslator/schema/aws_serverless_httpapi.py index 40c403936..4a2e04887 100644 --- a/samtranslator/schema/aws_serverless_httpapi.py +++ b/samtranslator/schema/aws_serverless_httpapi.py @@ -4,7 +4,14 @@ from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, SamIntrinsicable, get_prop, DictStrAny +from samtranslator.schema.common import ( + PassThroughProp, + BaseModel, + SamIntrinsicable, + get_prop, + DictStrAny, + EmbeddedConnector, +) oauth2authorizer = get_prop("sam-property-httpapi-oauth2authorizer") lambdauthorizeridentity = get_prop("sam-property-httpapi-lambdaauthorizationidentity") @@ -136,4 +143,4 @@ class Resource(BaseModel): Properties: Optional[Properties] Metadata: Optional[PassThroughProp] Condition: Optional[PassThroughProp] - Connectors: Optional[PassThroughProp] + Connectors: Optional[Dict[str, EmbeddedConnector]] diff --git a/samtranslator/schema/aws_serverless_simpletable.py b/samtranslator/schema/aws_serverless_simpletable.py index 39ee10b74..e8c44f9ba 100644 --- a/samtranslator/schema/aws_serverless_simpletable.py +++ b/samtranslator/schema/aws_serverless_simpletable.py @@ -4,7 +4,7 @@ from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, get_prop +from samtranslator.schema.common import PassThroughProp, BaseModel, get_prop, EmbeddedConnector primarykey = get_prop("sam-property-simpletable-primarykeyobject") properties = get_prop("sam-resource-simpletable") @@ -33,4 +33,4 @@ class Globals(BaseModel): class Resource(BaseModel): Type: Literal["AWS::Serverless::SimpleTable"] Properties: Optional[Properties] - Connectors: Optional[PassThroughProp] + Connectors: Optional[Dict[str, EmbeddedConnector]] diff --git a/samtranslator/schema/aws_serverless_statemachine.py b/samtranslator/schema/aws_serverless_statemachine.py index 3808adbba..587aceda6 100644 --- a/samtranslator/schema/aws_serverless_statemachine.py +++ b/samtranslator/schema/aws_serverless_statemachine.py @@ -4,7 +4,14 @@ from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, SamIntrinsicable, DictStrAny, get_prop +from samtranslator.schema.common import ( + PassThroughProp, + BaseModel, + SamIntrinsicable, + DictStrAny, + get_prop, + EmbeddedConnector, +) properties = get_prop("sam-resource-statemachine") deadletterconfig = get_prop("sam-property-statemachine-statemachinedeadletterconfig") @@ -165,4 +172,4 @@ class Resource(BaseModel): Type: Literal["AWS::Serverless::StateMachine"] Properties: Properties Condition: Optional[PassThroughProp] - Connectors: Optional[PassThroughProp] + Connectors: Optional[Dict[str, EmbeddedConnector]] diff --git a/samtranslator/schema/sam.schema.json b/samtranslator/schema/sam.schema.json index c3e32c608..fd14e4b98 100644 --- a/samtranslator/schema/sam.schema.json +++ b/samtranslator/schema/sam.schema.json @@ -727,6 +727,68 @@ "title": "DynamoDBEventProperties", "type": "object" }, + "EmbeddedConnector": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "MetaData": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/EmbeddedConnectorProperties" + }, + "UpdatePolicy": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Properties" + ], + "title": "EmbeddedConnector", + "type": "object" + }, + "EmbeddedConnectorProperties": { + "additionalProperties": false, + "properties": { + "Destination": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__common__ResourceReference" + } + ], + "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\\.", + "title": "Destination" + }, + "Permissions": { + "description": "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\\.", + "items": { + "enum": [ + "Read", + "Write" + ], + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "Permissions", + "type": "array" + }, + "SourceReference": { + "$ref": "#/definitions/SourceReference" + } + }, + "required": [ + "Destination", + "Permissions" + ], + "title": "EmbeddedConnectorProperties", + "type": "object" + }, "EndpointConfiguration": { "additionalProperties": false, "properties": { @@ -2115,85 +2177,6 @@ "title": "RequestParameters", "type": "object" }, - "ResourceReference": { - "additionalProperties": false, - "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" - }, - "Id": { - "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", - "type": "string" - }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" - }, - "Qualifier": { - "allOf": [ - { - "$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\\.", - "title": "Qualifier" - }, - "QueueUrl": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" - }, - "ResourceId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" - }, - "RoleName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" - }, - "Type": { - "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", - "type": "string" - } - }, - "title": "ResourceReference", - "type": "object" - }, "S3Event": { "additionalProperties": false, "properties": { @@ -2660,6 +2643,23 @@ "title": "SelfManagedKafkaEventProperties", "type": "object" }, + "SourceReference": { + "additionalProperties": false, + "properties": { + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + } + }, + "title": "SourceReference", + "type": "object" + }, "SqsSubscription": { "additionalProperties": false, "properties": { @@ -3509,7 +3509,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" @@ -3869,7 +3873,7 @@ "Destination": { "allOf": [ { - "$ref": "#/definitions/ResourceReference" + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" } ], "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\\.", @@ -3892,7 +3896,7 @@ "Source": { "allOf": [ { - "$ref": "#/definitions/ResourceReference" + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" } ], "description": "The source 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\\.", @@ -3929,6 +3933,85 @@ "title": "Resource", "type": "object" }, + "samtranslator__schema__aws_serverless_connector__ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" + }, "samtranslator__schema__aws_serverless_function__ApiEvent": { "additionalProperties": false, "properties": { @@ -5009,7 +5092,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" @@ -5841,7 +5928,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "Metadata": { "$ref": "#/definitions/PassThroughProp" @@ -6103,7 +6194,11 @@ "additionalProperties": false, "properties": { "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" @@ -6621,7 +6716,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" @@ -7040,6 +7139,85 @@ }, "title": "ScheduleV2EventProperties", "type": "object" + }, + "samtranslator__schema__common__ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" } }, "properties": { diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index db5fd6604..cefe5abc9 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -154165,6 +154165,68 @@ "title": "DynamoDBEventProperties", "type": "object" }, + "EmbeddedConnector": { + "additionalProperties": false, + "properties": { + "DeletionPolicy": { + "$ref": "#/definitions/PassThroughProp" + }, + "DependsOn": { + "$ref": "#/definitions/PassThroughProp" + }, + "MetaData": { + "$ref": "#/definitions/PassThroughProp" + }, + "Properties": { + "$ref": "#/definitions/EmbeddedConnectorProperties" + }, + "UpdatePolicy": { + "$ref": "#/definitions/PassThroughProp" + } + }, + "required": [ + "Properties" + ], + "title": "EmbeddedConnector", + "type": "object" + }, + "EmbeddedConnectorProperties": { + "additionalProperties": false, + "properties": { + "Destination": { + "allOf": [ + { + "$ref": "#/definitions/samtranslator__schema__common__ResourceReference" + } + ], + "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\\.", + "title": "Destination" + }, + "Permissions": { + "description": "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\\.", + "items": { + "enum": [ + "Read", + "Write" + ], + "type": "string" + }, + "markdownDescription": "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\\.", + "title": "Permissions", + "type": "array" + }, + "SourceReference": { + "$ref": "#/definitions/SourceReference" + } + }, + "required": [ + "Destination", + "Permissions" + ], + "title": "EmbeddedConnectorProperties", + "type": "object" + }, "EndpointConfiguration": { "additionalProperties": false, "properties": { @@ -155646,85 +155708,6 @@ "title": "RequestParameters", "type": "object" }, - "ResourceReference": { - "additionalProperties": false, - "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" - }, - "Id": { - "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", - "type": "string" - }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" - }, - "Qualifier": { - "allOf": [ - { - "$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\\.", - "title": "Qualifier" - }, - "QueueUrl": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" - }, - "ResourceId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" - }, - "RoleName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" - }, - "Type": { - "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", - "type": "string" - } - }, - "title": "ResourceReference", - "type": "object" - }, "S3Event": { "additionalProperties": false, "properties": { @@ -156191,6 +156174,23 @@ "title": "SelfManagedKafkaEventProperties", "type": "object" }, + "SourceReference": { + "additionalProperties": false, + "properties": { + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + } + }, + "title": "SourceReference", + "type": "object" + }, "SqsSubscription": { "additionalProperties": false, "properties": { @@ -157042,7 +157042,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" @@ -157402,7 +157406,7 @@ "Destination": { "allOf": [ { - "$ref": "#/definitions/ResourceReference" + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" } ], "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\\.", @@ -157425,7 +157429,7 @@ "Source": { "allOf": [ { - "$ref": "#/definitions/ResourceReference" + "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" } ], "description": "The source 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\\.", @@ -157462,6 +157466,85 @@ "title": "Resource", "type": "object" }, + "samtranslator__schema__aws_serverless_connector__ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" + }, "samtranslator__schema__aws_serverless_function__ApiEvent": { "additionalProperties": false, "properties": { @@ -158542,7 +158625,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "DeletionPolicy": { "$ref": "#/definitions/PassThroughProp" @@ -159374,7 +159461,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "Metadata": { "$ref": "#/definitions/PassThroughProp" @@ -159636,7 +159727,11 @@ "additionalProperties": false, "properties": { "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_simpletable__Properties" @@ -160154,7 +160249,11 @@ "$ref": "#/definitions/PassThroughProp" }, "Connectors": { - "$ref": "#/definitions/PassThroughProp" + "additionalProperties": { + "$ref": "#/definitions/EmbeddedConnector" + }, + "title": "Connectors", + "type": "object" }, "Properties": { "$ref": "#/definitions/samtranslator__schema__aws_serverless_statemachine__Properties" @@ -160573,6 +160672,85 @@ }, "title": "ScheduleV2EventProperties", "type": "object" + }, + "samtranslator__schema__common__ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" } }, "properties": { From a2636a5fd28b3bab5bbfc30e43509d417a5947ac Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 12:00:04 -0800 Subject: [PATCH 16/25] connector schema v2 --- samtranslator/schema/common.py | 35 +++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/samtranslator/schema/common.py b/samtranslator/schema/common.py index e227a8a23..bca900e1b 100644 --- a/samtranslator/schema/common.py +++ b/samtranslator/schema/common.py @@ -1,7 +1,7 @@ import json import os from pathlib import Path -from typing import Any, Dict, Optional, Union, TypeVar +from typing import Any, Dict, Optional, Union, TypeVar, List, Literal from functools import partial import pydantic @@ -59,3 +59,36 @@ class Config: # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html class Ref(BaseModel): Ref: str + + +connector_properties = get_prop("sam-resource-connector") +resourcereference = get_prop("sam-property-connector-resourcereference") + + +class ResourceReference(BaseModel): + Id: Optional[str] = resourcereference("Id") + Arn: Optional[PassThroughProp] = resourcereference("Arn") + Name: Optional[PassThroughProp] = resourcereference("Name") + Qualifier: Optional[PassThroughProp] = resourcereference("Qualifier") + QueueUrl: Optional[PassThroughProp] = resourcereference("QueueUrl") + ResourceId: Optional[PassThroughProp] = resourcereference("ResourceId") + RoleName: Optional[PassThroughProp] = resourcereference("RoleName") + Type: Optional[str] = resourcereference("Type") + + +class SourceReference(BaseModel): + Qualifier: Optional[PassThroughProp] = resourcereference("Qualifier") + + +class EmbeddedConnectorProperties(BaseModel): + SourceReference: Optional[SourceReference] # TODO: add docs for SourceReference + Destination: ResourceReference = connector_properties("Destination") + Permissions: List[Literal["Read", "Write"]] = connector_properties("Permissions") + + +class EmbeddedConnector(BaseModel): + Properties: EmbeddedConnectorProperties + DependsOn: Optional[PassThroughProp] + DeletionPolicy: Optional[PassThroughProp] + MetaData: Optional[PassThroughProp] + UpdatePolicy: Optional[PassThroughProp] From 7a42e3367229cefd36df672339217ae6707b15eb Mon Sep 17 00:00:00 2001 From: Sam Liu Date: Mon, 23 Jan 2023 20:04:25 +0000 Subject: [PATCH 17/25] feat: Support RuntimeManagementConfig --- .cfnlintrc.yaml | 2 + docs/globals.rst | 1 + samtranslator/model/lambda_.py | 3 + samtranslator/model/sam_resources.py | 4 + samtranslator/plugins/globals/globals.py | 5 +- .../schema/aws_serverless_function.py | 3 + samtranslator/schema/schema.json | 6 + .../input/function_with_runtime_config.yaml | 52 +++ .../input/globals_for_function.yaml | 4 + .../aws-cn/function_with_runtime_config.json | 329 ++++++++++++++++++ .../output/aws-cn/globals_for_function.json | 12 + .../function_with_runtime_config.json | 329 ++++++++++++++++++ .../aws-us-gov/globals_for_function.json | 12 + .../output/function_with_runtime_config.json | 329 ++++++++++++++++++ .../output/globals_for_function.json | 12 + 15 files changed, 1101 insertions(+), 2 deletions(-) create mode 100644 tests/translator/input/function_with_runtime_config.yaml create mode 100644 tests/translator/output/aws-cn/function_with_runtime_config.json create mode 100644 tests/translator/output/aws-us-gov/function_with_runtime_config.json create mode 100644 tests/translator/output/function_with_runtime_config.json diff --git a/.cfnlintrc.yaml b/.cfnlintrc.yaml index e28260faa..6aa91f643 100644 --- a/.cfnlintrc.yaml +++ b/.cfnlintrc.yaml @@ -114,6 +114,8 @@ ignore_templates: - tests/translator/output/**/state_machine_with_event_schedule_state.json - tests/translator/output/**/state_machine_with_schedule.json - tests/translator/output/**/state_machine_with_schedule_dlq_retry_policy.json + - tests/translator/output/**/globals_for_function.json # RuntimeManagementConfig + - tests/translator/output/**/function_with_runtime_config.json # RuntimeManagementConfig ignore_checks: - E2531 # Deprecated runtime; not relevant for transform tests - W2531 # EOL runtime; not relevant for transform tests diff --git a/docs/globals.rst b/docs/globals.rst index 6f2dfcffd..f30873fba 100644 --- a/docs/globals.rst +++ b/docs/globals.rst @@ -73,6 +73,7 @@ Currently, the following resources and properties are being supported: EventInvokeConfig: Architectures: EphemeralStorage: + RuntimeManagementConfig: Api: # Properties of AWS::Serverless::Api diff --git a/samtranslator/model/lambda_.py b/samtranslator/model/lambda_.py index 2d4d22edf..e56b6d790 100644 --- a/samtranslator/model/lambda_.py +++ b/samtranslator/model/lambda_.py @@ -31,6 +31,7 @@ class LambdaFunction(Resource): "Architectures": PropertyType(False, list_of(one_of(IS_STR, IS_DICT))), "SnapStart": PropertyType(False, IS_DICT), "EphemeralStorage": PropertyType(False, IS_DICT), + "RuntimeManagementConfig": PropertyType(False, IS_DICT), } Code: Dict[str, Any] @@ -56,6 +57,7 @@ class LambdaFunction(Resource): Architectures: Optional[List[Any]] SnapStart: Optional[Dict[str, Any]] EphemeralStorage: Optional[Dict[str, Any]] + RuntimeManagementConfig: Optional[Dict[str, Any]] runtime_attrs = {"name": lambda self: ref(self.logical_id), "arn": lambda self: fnGetAtt(self.logical_id, "Arn")} @@ -66,6 +68,7 @@ class LambdaVersion(Resource): "CodeSha256": PropertyType(False, IS_STR), "Description": PropertyType(False, IS_STR), "FunctionName": PropertyType(True, one_of(IS_STR, IS_DICT)), + "RuntimeManagementConfig": PropertyType(False, IS_DICT), } runtime_attrs = { diff --git a/samtranslator/model/sam_resources.py b/samtranslator/model/sam_resources.py index 2085f1da4..88e9cba5a 100644 --- a/samtranslator/model/sam_resources.py +++ b/samtranslator/model/sam_resources.py @@ -127,6 +127,7 @@ class SamFunction(SamResourceMacro): "Architectures": PropertyType(False, list_of(one_of(IS_STR, IS_DICT))), "SnapStart": PropertyType(False, IS_DICT), "FunctionUrlConfig": PropertyType(False, IS_DICT), + "RuntimeManagementConfig": PropertyType(False, IS_DICT), } FunctionName: Optional[Intrinsicable[str]] @@ -530,6 +531,7 @@ def _construct_lambda_function(self) -> LambdaFunction: lambda_function.CodeSigningConfigArn = self.CodeSigningConfigArn + lambda_function.RuntimeManagementConfig = self.RuntimeManagementConfig # type: ignore[attr-defined] self._validate_package_type(lambda_function) self._validate_architectures(lambda_function) return lambda_function @@ -893,6 +895,8 @@ def _construct_version( lambda_version = LambdaVersion(logical_id=logical_id, attributes=attributes) lambda_version.FunctionName = function.get_runtime_attr("name") lambda_version.Description = self.VersionDescription + # Copy the same runtime policy for the version and the function + lambda_version.RuntimeManagementConfig = function.RuntimeManagementConfig return lambda_version diff --git a/samtranslator/plugins/globals/globals.py b/samtranslator/plugins/globals/globals.py index 74c65aa48..e7d5b92bd 100644 --- a/samtranslator/plugins/globals/globals.py +++ b/samtranslator/plugins/globals/globals.py @@ -1,4 +1,4 @@ -from typing import Dict, List +from typing import Dict, List from samtranslator.model.exceptions import ExceptionWithMessage from samtranslator.public.sdk.resource import SamResourceType @@ -49,6 +49,7 @@ class Globals(object): "SnapStart", "EphemeralStorage", "FunctionUrlConfig", + "RuntimeManagementConfig", ], # Everything except # DefinitionBody: because its hard to reason about merge of Swagger dictionaries @@ -88,7 +89,7 @@ class Globals(object): } # unreleased_properties *must be* part of supported_properties too unreleased_properties: Dict[str, List[str]] = { - SamResourceType.Function.value: [], + SamResourceType.Function.value: ["RuntimeManagementConfig"], } def __init__(self, template): # type: ignore[no-untyped-def] diff --git a/samtranslator/schema/aws_serverless_function.py b/samtranslator/schema/aws_serverless_function.py index 6c3110a9c..d26c2e040 100644 --- a/samtranslator/schema/aws_serverless_function.py +++ b/samtranslator/schema/aws_serverless_function.py @@ -445,6 +445,7 @@ class ScheduleV2Event(BaseModel): Architectures = Optional[PassThrough] EphemeralStorage = Optional[PassThrough] SnapStart = Optional[PassThrough] # TODO: check the type +RuntimeManagementConfig = Optional[PassThrough] # TODO: check the type class Properties(BaseModel): @@ -504,6 +505,7 @@ class Properties(BaseModel): Role: Optional[SamIntrinsicable[str]] = prop("Role") Runtime: Optional[Runtime] = prop("Runtime") SnapStart: Optional[SnapStart] # TODO: add prop and types + RuntimeManagementConfig: Optional[RuntimeManagementConfig] # TODO: add prop and types Tags: Optional[Tags] = prop("Tags") Timeout: Optional[Timeout] = prop("Timeout") Tracing: Optional[Tracing] = prop("Tracing") @@ -536,6 +538,7 @@ class Globals(BaseModel): Architectures: Optional[Architectures] = prop("Architectures") EphemeralStorage: Optional[EphemeralStorage] = prop("EphemeralStorage") SnapStart: Optional[SnapStart] # TODO: add prop + RuntimeManagementConfig: Optional[RuntimeManagementConfig] # TODO: add prop class Resource(BaseModel): diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 9b38fd4d4..f88224381 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -532,6 +532,9 @@ }, "SnapStart": { "title": "Snapstart" + }, + "RuntimeManagementConfig": { + "title": "Runtimemanagementconfig" } }, "additionalProperties": false @@ -4002,6 +4005,9 @@ "SnapStart": { "title": "Snapstart" }, + "RuntimeManagementConfig": { + "title": "Runtimemanagementconfig" + }, "Tags": { "title": "Tags", "description": "A map \\(string to string\\) that specifies the tags added to this function\\. For details about valid keys and values for tags, see [Tag Key and Value Requirements](https://docs.aws.amazon.com/lambda/latest/dg/configuration-tags.html#configuration-tags-restrictions) in the *AWS Lambda Developer Guide*\\. \nWhen the stack is created, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\. \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-lambda-function.html#cfn-lambda-function-tags) property of an `AWS::Lambda::Function` resource\\. The `Tags` property in AWS SAM consists of key\\-value pairs \\(whereas in AWS CloudFormation this property consists of a list of `Tag` objects\\)\\. Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this Lambda function, and to the default roles that are generated for this function\\.", diff --git a/tests/translator/input/function_with_runtime_config.yaml b/tests/translator/input/function_with_runtime_config.yaml new file mode 100644 index 000000000..a9302aa10 --- /dev/null +++ b/tests/translator/input/function_with_runtime_config.yaml @@ -0,0 +1,52 @@ +%YAML 1.1 +--- +Parameters: + RuntimeVersionParam: + Type: String + RuntimeUpdateParam: + Type: String + +Resources: + FunctionWithRuntimeManagementConfig: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python3.8 + RuntimeManagementConfig: + UpdateRuntimeOn: Auto + MinimalFunctionWithManualRuntimeManagementConfig: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python3.8 + RuntimeManagementConfig: + UpdateRuntimeOn: Manual + RuntimeVersionArn: !Sub arn:aws:lambda:${AWS::Region}::runtime:python3.8::0af1966588ced06e3143ae720245c9b7aeaae213c6921c12c742a166679cc505 + FunctionWithRuntimeManagementConfigAndAlias: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python3.8 + AutoPublishAlias: live + RuntimeManagementConfig: + UpdateRuntimeOn: Auto + FunctionWithIntrinsicUpdateRuntimeOn: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python3.8 + RuntimeManagementConfig: + UpdateRuntimeOn: !Ref RuntimeUpdateParam + FunctionWithIntrinsicRuntimeVersion: + Type: AWS::Serverless::Function + Properties: + CodeUri: s3://sam-demo-bucket/hello.zip + Handler: hello.handler + Runtime: python3.8 + RuntimeManagementConfig: + UpdateRuntimeOn: !Ref RuntimeUpdateParam + RuntimeVersionArn: !Ref RuntimeVersionParam diff --git a/tests/translator/input/globals_for_function.yaml b/tests/translator/input/globals_for_function.yaml index eb7b1e6de..2b8343c9e 100644 --- a/tests/translator/input/globals_for_function.yaml +++ b/tests/translator/input/globals_for_function.yaml @@ -28,6 +28,8 @@ Globals: ApplyOn: PublishedVersions EphemeralStorage: Size: 1024 + RuntimeManagementConfig: + UpdateRuntimeOn: Auto Resources: MinimalFunction: @@ -57,3 +59,5 @@ Resources: SnapStart: ApplyOn: None ReservedConcurrentExecutions: 100 + RuntimeManagementConfig: + UpdateRuntimeOn: FunctionChange diff --git a/tests/translator/output/aws-cn/function_with_runtime_config.json b/tests/translator/output/aws-cn/function_with_runtime_config.json new file mode 100644 index 000000000..6bcbd9b28 --- /dev/null +++ b/tests/translator/output/aws-cn/function_with_runtime_config.json @@ -0,0 +1,329 @@ +{ + "Parameters": { + "RuntimeUpdateParam": { + "Type": "String" + }, + "RuntimeVersionParam": { + "Type": "String" + } + }, + "Resources": { + "FunctionWithIntrinsicRuntimeVersion": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithIntrinsicRuntimeVersionRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "RuntimeVersionArn": { + "Ref": "RuntimeVersionParam" + }, + "UpdateRuntimeOn": { + "Ref": "RuntimeUpdateParam" + } + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithIntrinsicRuntimeVersionRole": { + "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" + }, + "FunctionWithIntrinsicUpdateRuntimeOn": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithIntrinsicUpdateRuntimeOnRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": { + "Ref": "RuntimeUpdateParam" + } + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithIntrinsicUpdateRuntimeOnRole": { + "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" + }, + "FunctionWithRuntimeManagementConfig": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithRuntimeManagementConfigAndAlias": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigAndAliasRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithRuntimeManagementConfigAndAliasAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "FunctionWithRuntimeManagementConfigAndAlias" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigAndAliasVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "FunctionWithRuntimeManagementConfigAndAliasRole": { + "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" + }, + "FunctionWithRuntimeManagementConfigAndAliasVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "FunctionName": { + "Ref": "FunctionWithRuntimeManagementConfigAndAlias" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + } + }, + "Type": "AWS::Lambda::Version" + }, + "FunctionWithRuntimeManagementConfigRole": { + "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" + }, + "MinimalFunctionWithManualRuntimeManagementConfig": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionWithManualRuntimeManagementConfigRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "RuntimeVersionArn": { + "Fn::Sub": "arn:aws:lambda:${AWS::Region}::runtime:python3.8::0af1966588ced06e3143ae720245c9b7aeaae213c6921c12c742a166679cc505" + }, + "UpdateRuntimeOn": "Manual" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionWithManualRuntimeManagementConfigRole": { + "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/globals_for_function.json b/tests/translator/output/aws-cn/globals_for_function.json index 5e3b7c066..f75f3a4bd 100644 --- a/tests/translator/output/aws-cn/globals_for_function.json +++ b/tests/translator/output/aws-cn/globals_for_function.json @@ -37,6 +37,9 @@ ] }, "Runtime": "nodejs12.x", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "FunctionChange" + }, "SnapStart": { "ApplyOn": "None" }, @@ -131,6 +134,9 @@ "Properties": { "FunctionName": { "Ref": "FunctionWithOverrides" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "FunctionChange" } }, "Type": "AWS::Lambda::Version" @@ -168,6 +174,9 @@ ] }, "Runtime": "python2.7", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, "SnapStart": { "ApplyOn": "PublishedVersions" }, @@ -253,6 +262,9 @@ "Properties": { "FunctionName": { "Ref": "MinimalFunction" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" } }, "Type": "AWS::Lambda::Version" diff --git a/tests/translator/output/aws-us-gov/function_with_runtime_config.json b/tests/translator/output/aws-us-gov/function_with_runtime_config.json new file mode 100644 index 000000000..2a4006206 --- /dev/null +++ b/tests/translator/output/aws-us-gov/function_with_runtime_config.json @@ -0,0 +1,329 @@ +{ + "Parameters": { + "RuntimeUpdateParam": { + "Type": "String" + }, + "RuntimeVersionParam": { + "Type": "String" + } + }, + "Resources": { + "FunctionWithIntrinsicRuntimeVersion": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithIntrinsicRuntimeVersionRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "RuntimeVersionArn": { + "Ref": "RuntimeVersionParam" + }, + "UpdateRuntimeOn": { + "Ref": "RuntimeUpdateParam" + } + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithIntrinsicRuntimeVersionRole": { + "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" + }, + "FunctionWithIntrinsicUpdateRuntimeOn": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithIntrinsicUpdateRuntimeOnRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": { + "Ref": "RuntimeUpdateParam" + } + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithIntrinsicUpdateRuntimeOnRole": { + "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" + }, + "FunctionWithRuntimeManagementConfig": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithRuntimeManagementConfigAndAlias": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigAndAliasRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithRuntimeManagementConfigAndAliasAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "FunctionWithRuntimeManagementConfigAndAlias" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigAndAliasVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "FunctionWithRuntimeManagementConfigAndAliasRole": { + "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" + }, + "FunctionWithRuntimeManagementConfigAndAliasVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "FunctionName": { + "Ref": "FunctionWithRuntimeManagementConfigAndAlias" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + } + }, + "Type": "AWS::Lambda::Version" + }, + "FunctionWithRuntimeManagementConfigRole": { + "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" + }, + "MinimalFunctionWithManualRuntimeManagementConfig": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionWithManualRuntimeManagementConfigRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "RuntimeVersionArn": { + "Fn::Sub": "arn:aws:lambda:${AWS::Region}::runtime:python3.8::0af1966588ced06e3143ae720245c9b7aeaae213c6921c12c742a166679cc505" + }, + "UpdateRuntimeOn": "Manual" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionWithManualRuntimeManagementConfigRole": { + "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/globals_for_function.json b/tests/translator/output/aws-us-gov/globals_for_function.json index 1f22a2a28..04cd8a34e 100644 --- a/tests/translator/output/aws-us-gov/globals_for_function.json +++ b/tests/translator/output/aws-us-gov/globals_for_function.json @@ -37,6 +37,9 @@ ] }, "Runtime": "nodejs12.x", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "FunctionChange" + }, "SnapStart": { "ApplyOn": "None" }, @@ -131,6 +134,9 @@ "Properties": { "FunctionName": { "Ref": "FunctionWithOverrides" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "FunctionChange" } }, "Type": "AWS::Lambda::Version" @@ -168,6 +174,9 @@ ] }, "Runtime": "python2.7", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, "SnapStart": { "ApplyOn": "PublishedVersions" }, @@ -253,6 +262,9 @@ "Properties": { "FunctionName": { "Ref": "MinimalFunction" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" } }, "Type": "AWS::Lambda::Version" diff --git a/tests/translator/output/function_with_runtime_config.json b/tests/translator/output/function_with_runtime_config.json new file mode 100644 index 000000000..6097bdad3 --- /dev/null +++ b/tests/translator/output/function_with_runtime_config.json @@ -0,0 +1,329 @@ +{ + "Parameters": { + "RuntimeUpdateParam": { + "Type": "String" + }, + "RuntimeVersionParam": { + "Type": "String" + } + }, + "Resources": { + "FunctionWithIntrinsicRuntimeVersion": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithIntrinsicRuntimeVersionRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "RuntimeVersionArn": { + "Ref": "RuntimeVersionParam" + }, + "UpdateRuntimeOn": { + "Ref": "RuntimeUpdateParam" + } + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithIntrinsicRuntimeVersionRole": { + "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" + }, + "FunctionWithIntrinsicUpdateRuntimeOn": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithIntrinsicUpdateRuntimeOnRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": { + "Ref": "RuntimeUpdateParam" + } + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithIntrinsicUpdateRuntimeOnRole": { + "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" + }, + "FunctionWithRuntimeManagementConfig": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithRuntimeManagementConfigAndAlias": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigAndAliasRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "FunctionWithRuntimeManagementConfigAndAliasAliaslive": { + "Properties": { + "FunctionName": { + "Ref": "FunctionWithRuntimeManagementConfigAndAlias" + }, + "FunctionVersion": { + "Fn::GetAtt": [ + "FunctionWithRuntimeManagementConfigAndAliasVersion640128d35d", + "Version" + ] + }, + "Name": "live" + }, + "Type": "AWS::Lambda::Alias" + }, + "FunctionWithRuntimeManagementConfigAndAliasRole": { + "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" + }, + "FunctionWithRuntimeManagementConfigAndAliasVersion640128d35d": { + "DeletionPolicy": "Retain", + "Properties": { + "FunctionName": { + "Ref": "FunctionWithRuntimeManagementConfigAndAlias" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + } + }, + "Type": "AWS::Lambda::Version" + }, + "FunctionWithRuntimeManagementConfigRole": { + "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" + }, + "MinimalFunctionWithManualRuntimeManagementConfig": { + "Properties": { + "Code": { + "S3Bucket": "sam-demo-bucket", + "S3Key": "hello.zip" + }, + "Handler": "hello.handler", + "Role": { + "Fn::GetAtt": [ + "MinimalFunctionWithManualRuntimeManagementConfigRole", + "Arn" + ] + }, + "Runtime": "python3.8", + "RuntimeManagementConfig": { + "RuntimeVersionArn": { + "Fn::Sub": "arn:aws:lambda:${AWS::Region}::runtime:python3.8::0af1966588ced06e3143ae720245c9b7aeaae213c6921c12c742a166679cc505" + }, + "UpdateRuntimeOn": "Manual" + }, + "Tags": [ + { + "Key": "lambda:createdBy", + "Value": "SAM" + } + ] + }, + "Type": "AWS::Lambda::Function" + }, + "MinimalFunctionWithManualRuntimeManagementConfigRole": { + "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/globals_for_function.json b/tests/translator/output/globals_for_function.json index 7dfd8d294..791dcfe28 100644 --- a/tests/translator/output/globals_for_function.json +++ b/tests/translator/output/globals_for_function.json @@ -37,6 +37,9 @@ ] }, "Runtime": "nodejs12.x", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "FunctionChange" + }, "SnapStart": { "ApplyOn": "None" }, @@ -131,6 +134,9 @@ "Properties": { "FunctionName": { "Ref": "FunctionWithOverrides" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "FunctionChange" } }, "Type": "AWS::Lambda::Version" @@ -168,6 +174,9 @@ ] }, "Runtime": "python2.7", + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" + }, "SnapStart": { "ApplyOn": "PublishedVersions" }, @@ -253,6 +262,9 @@ "Properties": { "FunctionName": { "Ref": "MinimalFunction" + }, + "RuntimeManagementConfig": { + "UpdateRuntimeOn": "Auto" } }, "Type": "AWS::Lambda::Version" From 68becd7d943700d8586509789ae9117c987ef33e Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 12:06:56 -0800 Subject: [PATCH 18/25] import fix --- samtranslator/schema/common.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samtranslator/schema/common.py b/samtranslator/schema/common.py index bca900e1b..ab1a9a9c1 100644 --- a/samtranslator/schema/common.py +++ b/samtranslator/schema/common.py @@ -1,7 +1,8 @@ import json import os from pathlib import Path -from typing import Any, Dict, Optional, Union, TypeVar, List, Literal +from typing import Any, Dict, Optional, Union, TypeVar, List +from typing_extensions import Literal from functools import partial import pydantic From cf041b27536948f23b749646ca88bd3a7b989958 Mon Sep 17 00:00:00 2001 From: aws-sam-cli-bot <46753707+aws-sam-cli-bot@users.noreply.github.com> Date: Mon, 23 Jan 2023 20:07:33 +0000 Subject: [PATCH 19/25] chore: bump version to 1.58.0 --- samtranslator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samtranslator/__init__.py b/samtranslator/__init__.py index 4e9b170d0..55fa6f831 100644 --- a/samtranslator/__init__.py +++ b/samtranslator/__init__.py @@ -1 +1 @@ -__version__ = "1.55.0" +__version__ = "1.58.0" From fd156fdad6f7c1f8f3da116b521806d610cb6cad Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 13:29:38 -0800 Subject: [PATCH 20/25] schema fix --- samtranslator/schema/aws_serverless_api.py | 2 +- .../schema/aws_serverless_connector.py | 18 ++ .../schema/aws_serverless_function.py | 2 +- .../schema/aws_serverless_httpapi.py | 2 +- .../schema/aws_serverless_simpletable.py | 3 +- .../schema/aws_serverless_statemachine.py | 2 +- samtranslator/schema/common.py | 37 +-- samtranslator/schema/sam.schema.json | 245 ++++++------------ samtranslator/schema/schema.json | 245 ++++++------------ 9 files changed, 191 insertions(+), 365 deletions(-) diff --git a/samtranslator/schema/aws_serverless_api.py b/samtranslator/schema/aws_serverless_api.py index d675e5df1..f5f9ff135 100644 --- a/samtranslator/schema/aws_serverless_api.py +++ b/samtranslator/schema/aws_serverless_api.py @@ -10,8 +10,8 @@ SamIntrinsicable, get_prop, DictStrAny, - EmbeddedConnector, ) +from samtranslator.schema.aws_serverless_connector import EmbeddedConnector resourcepolicy = get_prop("sam-property-api-resourcepolicystatement") cognitoauthorizeridentity = get_prop("sam-property-api-cognitoauthorizationidentity") diff --git a/samtranslator/schema/aws_serverless_connector.py b/samtranslator/schema/aws_serverless_connector.py index 9dea7ee06..8527cd6f2 100644 --- a/samtranslator/schema/aws_serverless_connector.py +++ b/samtranslator/schema/aws_serverless_connector.py @@ -28,3 +28,21 @@ class Properties(BaseModel): class Resource(BaseModel): Type: Literal["AWS::Serverless::Connector"] Properties: Properties + + +class SourceReference(BaseModel): + Qualifier: Optional[PassThroughProp] = resourcereference("Qualifier") + + +class EmbeddedConnectorProperties(BaseModel): + SourceReference: Optional[SourceReference] # TODO: add docs for SourceReference + Destination: ResourceReference = properties("Destination") + Permissions: List[Literal["Read", "Write"]] = properties("Permissions") + + +class EmbeddedConnector(BaseModel): + Properties: EmbeddedConnectorProperties + DependsOn: Optional[PassThroughProp] + DeletionPolicy: Optional[PassThroughProp] + Metadata: Optional[PassThroughProp] + UpdatePolicy: Optional[PassThroughProp] diff --git a/samtranslator/schema/aws_serverless_function.py b/samtranslator/schema/aws_serverless_function.py index 50e0f975f..0e0c5b6eb 100644 --- a/samtranslator/schema/aws_serverless_function.py +++ b/samtranslator/schema/aws_serverless_function.py @@ -11,8 +11,8 @@ get_prop, DictStrAny, Ref, - EmbeddedConnector, ) +from samtranslator.schema.aws_serverless_connector import EmbeddedConnector alexaskilleventproperties = get_prop("sam-property-function-alexaskill") diff --git a/samtranslator/schema/aws_serverless_httpapi.py b/samtranslator/schema/aws_serverless_httpapi.py index 4a2e04887..c529eb974 100644 --- a/samtranslator/schema/aws_serverless_httpapi.py +++ b/samtranslator/schema/aws_serverless_httpapi.py @@ -10,8 +10,8 @@ SamIntrinsicable, get_prop, DictStrAny, - EmbeddedConnector, ) +from samtranslator.schema.aws_serverless_connector import EmbeddedConnector oauth2authorizer = get_prop("sam-property-httpapi-oauth2authorizer") lambdauthorizeridentity = get_prop("sam-property-httpapi-lambdaauthorizationidentity") diff --git a/samtranslator/schema/aws_serverless_simpletable.py b/samtranslator/schema/aws_serverless_simpletable.py index e8c44f9ba..9fa8afbb9 100644 --- a/samtranslator/schema/aws_serverless_simpletable.py +++ b/samtranslator/schema/aws_serverless_simpletable.py @@ -4,7 +4,8 @@ from typing_extensions import Literal -from samtranslator.schema.common import PassThroughProp, BaseModel, get_prop, EmbeddedConnector +from samtranslator.schema.common import PassThroughProp, BaseModel, get_prop +from samtranslator.schema.aws_serverless_connector import EmbeddedConnector primarykey = get_prop("sam-property-simpletable-primarykeyobject") properties = get_prop("sam-resource-simpletable") diff --git a/samtranslator/schema/aws_serverless_statemachine.py b/samtranslator/schema/aws_serverless_statemachine.py index 587aceda6..314da1c6e 100644 --- a/samtranslator/schema/aws_serverless_statemachine.py +++ b/samtranslator/schema/aws_serverless_statemachine.py @@ -10,8 +10,8 @@ SamIntrinsicable, DictStrAny, get_prop, - EmbeddedConnector, ) +from samtranslator.schema.aws_serverless_connector import EmbeddedConnector properties = get_prop("sam-resource-statemachine") deadletterconfig = get_prop("sam-property-statemachine-statemachinedeadletterconfig") diff --git a/samtranslator/schema/common.py b/samtranslator/schema/common.py index ab1a9a9c1..3b3fa3eea 100644 --- a/samtranslator/schema/common.py +++ b/samtranslator/schema/common.py @@ -1,10 +1,8 @@ import json import os from pathlib import Path -from typing import Any, Dict, Optional, Union, TypeVar, List -from typing_extensions import Literal +from typing import Any, Dict, Optional, Union, TypeVar from functools import partial - import pydantic from pydantic import Extra, Field @@ -60,36 +58,3 @@ class Config: # https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html class Ref(BaseModel): Ref: str - - -connector_properties = get_prop("sam-resource-connector") -resourcereference = get_prop("sam-property-connector-resourcereference") - - -class ResourceReference(BaseModel): - Id: Optional[str] = resourcereference("Id") - Arn: Optional[PassThroughProp] = resourcereference("Arn") - Name: Optional[PassThroughProp] = resourcereference("Name") - Qualifier: Optional[PassThroughProp] = resourcereference("Qualifier") - QueueUrl: Optional[PassThroughProp] = resourcereference("QueueUrl") - ResourceId: Optional[PassThroughProp] = resourcereference("ResourceId") - RoleName: Optional[PassThroughProp] = resourcereference("RoleName") - Type: Optional[str] = resourcereference("Type") - - -class SourceReference(BaseModel): - Qualifier: Optional[PassThroughProp] = resourcereference("Qualifier") - - -class EmbeddedConnectorProperties(BaseModel): - SourceReference: Optional[SourceReference] # TODO: add docs for SourceReference - Destination: ResourceReference = connector_properties("Destination") - Permissions: List[Literal["Read", "Write"]] = connector_properties("Permissions") - - -class EmbeddedConnector(BaseModel): - Properties: EmbeddedConnectorProperties - DependsOn: Optional[PassThroughProp] - DeletionPolicy: Optional[PassThroughProp] - MetaData: Optional[PassThroughProp] - UpdatePolicy: Optional[PassThroughProp] diff --git a/samtranslator/schema/sam.schema.json b/samtranslator/schema/sam.schema.json index fd14e4b98..68a4f2335 100644 --- a/samtranslator/schema/sam.schema.json +++ b/samtranslator/schema/sam.schema.json @@ -736,7 +736,7 @@ "DependsOn": { "$ref": "#/definitions/PassThroughProp" }, - "MetaData": { + "Metadata": { "$ref": "#/definitions/PassThroughProp" }, "Properties": { @@ -758,7 +758,7 @@ "Destination": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__common__ResourceReference" + "$ref": "#/definitions/ResourceReference" } ], "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\\.", @@ -2177,6 +2177,85 @@ "title": "RequestParameters", "type": "object" }, + "ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" + }, "S3Event": { "additionalProperties": false, "properties": { @@ -3873,7 +3952,7 @@ "Destination": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" + "$ref": "#/definitions/ResourceReference" } ], "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\\.", @@ -3896,7 +3975,7 @@ "Source": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" + "$ref": "#/definitions/ResourceReference" } ], "description": "The source 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\\.", @@ -3933,85 +4012,6 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__ResourceReference": { - "additionalProperties": false, - "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" - }, - "Id": { - "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", - "type": "string" - }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" - }, - "Qualifier": { - "allOf": [ - { - "$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\\.", - "title": "Qualifier" - }, - "QueueUrl": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" - }, - "ResourceId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" - }, - "RoleName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" - }, - "Type": { - "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", - "type": "string" - } - }, - "title": "ResourceReference", - "type": "object" - }, "samtranslator__schema__aws_serverless_function__ApiEvent": { "additionalProperties": false, "properties": { @@ -7139,85 +7139,6 @@ }, "title": "ScheduleV2EventProperties", "type": "object" - }, - "samtranslator__schema__common__ResourceReference": { - "additionalProperties": false, - "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" - }, - "Id": { - "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", - "type": "string" - }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" - }, - "Qualifier": { - "allOf": [ - { - "$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\\.", - "title": "Qualifier" - }, - "QueueUrl": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" - }, - "ResourceId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" - }, - "RoleName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" - }, - "Type": { - "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", - "type": "string" - } - }, - "title": "ResourceReference", - "type": "object" } }, "properties": { diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index cefe5abc9..3a78e9807 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -154174,7 +154174,7 @@ "DependsOn": { "$ref": "#/definitions/PassThroughProp" }, - "MetaData": { + "Metadata": { "$ref": "#/definitions/PassThroughProp" }, "Properties": { @@ -154196,7 +154196,7 @@ "Destination": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__common__ResourceReference" + "$ref": "#/definitions/ResourceReference" } ], "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\\.", @@ -155708,6 +155708,85 @@ "title": "RequestParameters", "type": "object" }, + "ResourceReference": { + "additionalProperties": false, + "properties": { + "Arn": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" + }, + "Id": { + "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", + "type": "string" + }, + "Name": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" + }, + "Qualifier": { + "allOf": [ + { + "$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\\.", + "title": "Qualifier" + }, + "QueueUrl": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" + }, + "ResourceId": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" + }, + "RoleName": { + "allOf": [ + { + "$ref": "#/definitions/PassThroughProp" + } + ], + "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" + }, + "Type": { + "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", + "type": "string" + } + }, + "title": "ResourceReference", + "type": "object" + }, "S3Event": { "additionalProperties": false, "properties": { @@ -157406,7 +157485,7 @@ "Destination": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" + "$ref": "#/definitions/ResourceReference" } ], "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\\.", @@ -157429,7 +157508,7 @@ "Source": { "allOf": [ { - "$ref": "#/definitions/samtranslator__schema__aws_serverless_connector__ResourceReference" + "$ref": "#/definitions/ResourceReference" } ], "description": "The source 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\\.", @@ -157466,85 +157545,6 @@ "title": "Resource", "type": "object" }, - "samtranslator__schema__aws_serverless_connector__ResourceReference": { - "additionalProperties": false, - "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" - }, - "Id": { - "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", - "type": "string" - }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" - }, - "Qualifier": { - "allOf": [ - { - "$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\\.", - "title": "Qualifier" - }, - "QueueUrl": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" - }, - "ResourceId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" - }, - "RoleName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" - }, - "Type": { - "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", - "type": "string" - } - }, - "title": "ResourceReference", - "type": "object" - }, "samtranslator__schema__aws_serverless_function__ApiEvent": { "additionalProperties": false, "properties": { @@ -160672,85 +160672,6 @@ }, "title": "ScheduleV2EventProperties", "type": "object" - }, - "samtranslator__schema__common__ResourceReference": { - "additionalProperties": false, - "properties": { - "Arn": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ARN of a resource\\. \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": "The ARN of a resource\\. \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": "Arn" - }, - "Id": { - "description": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The [logical ID](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resources-section-structure.html) of a resource in the same template\\. \nWhen `Id` is specified, if the connector generates AWS Identity and Access Management \\(IAM\\) policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "Id", - "type": "string" - }, - "Name": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The name of a resource\\. \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": "The name of a resource\\. \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": "Name" - }, - "Qualifier": { - "allOf": [ - { - "$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\\.", - "title": "Qualifier" - }, - "QueueUrl": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "The Amazon SQS queue URL\\. This property only applies to Amazon SQS resources\\. \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": "QueueUrl" - }, - "ResourceId": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "The ID of a resource\\. For example, the API Gateway API ID\\. \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": "ResourceId" - }, - "RoleName": { - "allOf": [ - { - "$ref": "#/definitions/PassThroughProp" - } - ], - "description": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "The role name associated with a resource\\. \nWhen `Id` is specified, if the connector generates IAM policies, the IAM role associated to those policies will be inferred from the resource `Id`\\. When `Id` is not specified, provide `RoleName` of the resource for connectors to attach generated IAM policies to an IAM role\\.\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": "RoleName" - }, - "Type": { - "description": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "The AWS CloudFormation type of a resource\\. For more information, go to [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.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": "Type", - "type": "string" - } - }, - "title": "ResourceReference", - "type": "object" } }, "properties": { From f2c1f57714ebd4cdd5901a837477ad55e3b03770 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 15:58:22 -0800 Subject: [PATCH 21/25] error msg --- samtranslator/translator/translator.py | 167 ++++++++++-------- samtranslator/translator/verify_logical_id.py | 5 +- .../output/error_embedded_connectors.json | 64 +------ 3 files changed, 99 insertions(+), 137 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 621df6a3a..6c3cd2ffc 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -15,7 +15,6 @@ from samtranslator.model.exceptions import ( InvalidDocumentException, InvalidResourceException, - InvalidResourcePropertyTypeException, DuplicateLogicalIdException, InvalidEventException, InvalidTemplateException, @@ -55,6 +54,7 @@ def __init__(self, managed_policy_map, sam_parser, plugins=None, boto_session=No self.metrics = metrics if metrics else Metrics("ServerlessTransform", DummyMetricsPublisher()) # type: ignore[no-untyped-call, no-untyped-call] MetricsMethodWrapperSingleton.set_instance(self.metrics) self._translated_resouce_mapping = {} + self.document_errors = [] if self.boto_session: ArnGenerator.BOTO_SESSION_REGION_NAME = self.boto_session.region_name @@ -127,8 +127,11 @@ def translate( self.sam_parser.parse(sam_template=sam_template, parameter_values=parameter_values, sam_plugins=sam_plugins) - document_errors: List[Any] = [] - _add_embedded_connectors(sam_template=sam_template, document_errors=document_errors) + # replaces Connectors attributes with serverless Connector resources + resources = sam_template.get("Resources", {}) + embedded_connectors = self._get_embedded_connectors(resources) + self._update_resources(resources, embedded_connectors) + self._delete_connectors_attribute(resources) template = copy.deepcopy(sam_template) macro_resolver = ResourceTypeResolver(sam_resources) @@ -177,7 +180,7 @@ def translate( del template["Resources"][logical_id] for resource in translated: - if verify_unique_logical_id(resource, sam_template["Resources"]): # type: ignore[no-untyped-call] + if verify_unique_logical_id(resource, sam_template["Resources"]): # For each generated resource, pass through existing metadata that may exist on the original SAM resource. _r = resource.to_dict() if resource_dict.get("Metadata") and passthrough_metadata: @@ -185,11 +188,11 @@ def translate( _r[resource.logical_id]["Metadata"] = resource_dict["Metadata"] template["Resources"].update(_r) else: - document_errors.append( + self.document_errors.append( DuplicateLogicalIdException(logical_id, resource.logical_id, resource.resource_type) ) except (InvalidResourceException, InvalidEventException, InvalidTemplateException) as e: - document_errors.append(e) + self.document_errors.append(e) if deployment_preference_collection.any_enabled(): template["Resources"].update(deployment_preference_collection.get_codedeploy_application().to_dict()) @@ -207,23 +210,23 @@ def translate( deployment_preference_collection.deployment_group(logical_id).to_dict() ) except InvalidResourceException as e: - document_errors.append(e) + self.document_errors.append(e) # Run the after-transform plugin target try: sam_plugins.act(LifeCycleEvents.after_transform_template, template) except (InvalidDocumentException, InvalidResourceException, InvalidTemplateException) as e: - document_errors.append(e) + self.document_errors.append(e) # Cleanup if "Transform" in template: del template["Transform"] - if len(document_errors) == 0: + if len(self.document_errors) == 0: template = intrinsics_resolver.resolve_sam_resource_id_refs(template, changed_logical_ids) template = intrinsics_resolver.resolve_sam_resource_refs(template, supported_resource_refs) return template - raise InvalidDocumentException(document_errors) + raise InvalidDocumentException(self.document_errors) # private methods def _get_resources_to_iterate( @@ -273,82 +276,100 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors + @staticmethod + def _update_resources(resources: Dict[str, Any], connectors_list: List[SamConnector]) -> None: + for connector in connectors_list: + resources.update(connector.to_dict()) -def _add_embedded_connectors(sam_template: Dict[str, Any], document_errors: List[Any]) -> None: - """ - Loops through the SAM Template resources to find any connectors that have been attached to the resources. - Adds those attached connectors as Connector resources to the list of resources - - :param dict sam_template: SAM template - """ - resources = sam_template.get("Resources", {}) - connectors = {} - - # Loop through the resources in the template and see if any connectors have been attached - for source_logical_id, resource in resources.items(): - if "Connectors" not in resource: - continue - try: - sam_expect( - resource["Connectors"], source_logical_id, "Connectors", is_resource_attribute=True - ).to_be_a_map() - - for connector_logical_id, connector_dict in resource["Connectors"].items(): + @staticmethod + def _delete_connectors_attribute(resources: Dict[str, Any]) -> None: + for source_logical_id, resource in resources.items(): + if "Connectors" not in resource: + continue + del resources[source_logical_id]["Connectors"] - # The logical id for the transformed connector will be + - connector_logical_id = source_logical_id + connector_logical_id + def _get_embedded_connectors(self, resources: Dict[str, Any]) -> List[SamConnector]: + """ + Loops through the SAM Template resources to find any connectors that have been attached to the resources. + Converts those attached connectors into Connector resources and returns a list of them - # can't use sam_expect since this is neither a property nor a resource attribute - if not isinstance(connector_dict, dict): - raise InvalidResourceException(connector_logical_id, f"{connector_logical_id} should be a map.") + :param dict resources: Dict of resources from the SAM template + :return List[SamConnector]: List of the generated SAM Connectors + """ + connectors = [] - # mutates the connector_dict to make it a connector resource - _get_generated_connector(source_logical_id, connector_logical_id, connector_dict, document_errors) + # Loop through the resources in the template and see if any connectors have been attached + for source_logical_id, resource in resources.items(): + if "Connectors" not in resource: + continue + try: + sam_expect( + resource.get("Connectors"), + source_logical_id, + f"{source_logical_id}.Connectors", + is_resource_attribute=True, + ).to_be_a_map() + except InvalidResourceException as e: + self.document_errors.append(e) - connectors[connector_logical_id] = connector_dict + for connector_logical_id, connector_dict in resource["Connectors"].items(): + try: + connector_logical_id = source_logical_id + connector_logical_id + # can't use sam_expect since this is neither a property nor a resource attribute + if not isinstance(connector_dict, dict): + raise InvalidResourceException( + connector_logical_id, f"{source_logical_id}.{connector_logical_id} should be a map." + ) - # delete connectors key, so it doesn't show up in the transformed template - del resource["Connectors"] - except InvalidResourceException as e: - document_errors.append(e) + generated_connector = self._get_generated_connector( + source_logical_id, + connector_logical_id, + connector_dict, + ) - # go through the list of generated connectors and add it to resources dict - for connector_logical_id, connector_dict in connectors.items(): - if connector_logical_id in resources: - document_errors.append( - DuplicateLogicalIdException( - connector_logical_id, connector_logical_id, resources[connector_logical_id]["Type"] - ) - ) - else: - resources[connector_logical_id] = connector_dict + if not verify_unique_logical_id(generated_connector, resources): + raise DuplicateLogicalIdException( + source_logical_id, connector_logical_id, generated_connector.resource_type + ) + connectors.append(generated_connector) + except (InvalidResourceException, DuplicateLogicalIdException) as e: + self.document_errors.append(e) + return connectors -def _get_generated_connector( - source_logical_id: str, connector_logical_id: str, connector: Dict[str, Any], document_errors: List[Any] -) -> None: - """ - Adds the type, source id and any ResourceReference properties to the connector + def _get_generated_connector( + self, source_logical_id: str, connector_logical_id: str, connector_dict: Dict[str, Any] + ) -> Any: + """ + Generates the connector resource from the embedded connector - :param str source_logical_id: Logical id of the resource the connector is attached to - :param str connector_logical_id: Logical id of the connector - :param dict connector: the properties of the connector including the Destination, Permissions and SourceReference [Optional] - """ - connector_class = SamConnector(logical_id="SamConnector") - connector["Type"] = connector_class.resource_type - - # No need to raise an error for this instance as the error will be caught by the parser - if "Properties" in connector and isinstance(connector["Properties"], dict): - properties = connector["Properties"] - properties["Source"] = {"Id": source_logical_id} - if "SourceReference" in properties: - try: - sam_expect(properties["SourceReference"], connector_logical_id, "SourceReference").to_be_a_map() + :param str source_logical_id: Logical id of the resource the connector is attached to + :param str connector_logical_id: Logical id of the connector + :param dict connector_dict: The properties of the connector including the Destination, Permissions and optionally the SourceReference + :return: The generated SAMConnector resource + """ + connector = copy.deepcopy(connector_dict) + connector["Type"] = SamConnector.resource_type + + # No need to raise an error for this instance as the error will be caught by the parser + if "Properties" in connector_dict and isinstance(connector_dict["Properties"], dict): + properties = connector["Properties"] + properties["Source"] = {"Id": source_logical_id} + if "SourceReference" in properties: + sam_expect( + properties.get("SourceReference"), + connector_logical_id, + f"{connector_logical_id}.Properties.SourceReference", + ).to_be_a_map() + + # can't allow user to override the Id using SourceReference + if "Id" in properties["SourceReference"]: + raise InvalidResourceException(connector_logical_id, "Id shouldn't be defined in 'SourceReference'") properties["Source"].update(properties["SourceReference"]) del properties["SourceReference"] - except InvalidResourcePropertyTypeException as e: - document_errors.append(e) + + return SamConnector.from_dict(connector_logical_id, connector) # type: ignore[no-untyped-call] def prepare_plugins(plugins: List[Any], parameters: Optional[Dict[str, Any]] = None) -> SamPlugins: diff --git a/samtranslator/translator/verify_logical_id.py b/samtranslator/translator/verify_logical_id.py index 72216bb32..99081b987 100644 --- a/samtranslator/translator/verify_logical_id.py +++ b/samtranslator/translator/verify_logical_id.py @@ -1,3 +1,6 @@ +from ..model import Resource +from typing import Dict, Any + do_not_verify = { # type_after_transform: type_before_transform "AWS::Lambda::Function": "AWS::Serverless::Function", @@ -15,7 +18,7 @@ } -def verify_unique_logical_id(resource, existing_resources): # type: ignore[no-untyped-def] +def verify_unique_logical_id(resource: Resource, existing_resources: Dict[str, Any]) -> bool: # new resource logicalid exists in the template before transform if resource.logical_id is not None and resource.logical_id in existing_resources: # new resource logicalid is in the do_not_resolve list diff --git a/tests/translator/output/error_embedded_connectors.json b/tests/translator/output/error_embedded_connectors.json index e270795a0..e66cff0d6 100644 --- a/tests/translator/output/error_embedded_connectors.json +++ b/tests/translator/output/error_embedded_connectors.json @@ -1,65 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 20. 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 [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 [MyFunctionEmptyProperties] is invalid. Properties of a resource must be an object. 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. 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 [MyFunctionNonDictProperties] is invalid. Properties of a resource must be an object. Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; 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; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string.", - "errors": [ - { - "errorMessage": "Resource with id [MyFunctionNoDictConnectorNonDictConnector] is invalid. MyFunctionNoDictConnectorNonDictConnector should be a map." - }, - { - "errorMessage": "Resource with id [MyFunctionNonDictProperties] is invalid. Properties of a resource must be an object." - }, - { - "errorMessage": "Resource with id [MyFunctionEmptyProperties] is invalid. Properties of a resource must be an object." - }, - { - "errorMessage": "Resource with id [MyFunctionNoIdMissingType] is invalid. 'Type' is missing or not a string." - }, - { - "errorMessage": "Resource with id [MyFunctionNoStrId] is invalid. 'Id' is missing or not a string." - }, - { - "errorMessage": "Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'." - }, - { - "errorMessage": "Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; valid values are: Read, Write." - }, - { - "errorMessage": "Resource with id [MyFunctionNoDestination] is invalid. Missing required property 'Destination'." - }, - { - "errorMessage": "Resource with id [MyFunctionEmptyDestination] is invalid. Missing required property 'Destination'." - }, - { - "errorMessage": "Resource with id [MyFunctionNoPermissions] is invalid. Missing required property 'Permissions'." - }, - { - "errorMessage": "Resource with id [MyFunctionEmptyPermissions] is invalid. Missing required property 'Permissions'." - }, - { - "errorMessage": "Resource with id [MyFunctionEmptyPermissionsList] is invalid. 'Permissions' cannot be empty; valid values are: Read, Write." - }, - { - "errorMessage": "Resource with id [MyFunctionBothIdAndOtherProps] is invalid. Must provide 'Id' (with optional 'Qualifier') or a supported combination of other properties." - }, - { - "errorMessage": "Resource with id [MyFunctionMissingRoleMissingRole] is invalid. Unable to get IAM role name from 'Source' resource." - }, - { - "errorMessage": "Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string." - }, - { - "errorMessage": "Resource with id [EventsRuleMissingSnsTopicArn] is invalid. Destination.Arn is missing." - }, - { - "errorMessage": "Resource with id [EventsRuleMissingLambdaFunctionArn] is invalid. Unable to get Lambda function ARN from 'Destination' resource." - }, - { - "errorMessage": "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." - }, - { - "errorMessage": "Resource with id [MyQueueMissingRoleDestination] is invalid. Unable to get IAM role name from 'Destination' resource." - }, - { - "errorMessage": "Resource with id [MyQueueUnsupportedAccessCategoryCombination] is invalid. Unsupported 'Permissions' provided; valid combinations are: Read + Write." - } - ] + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 20. 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 [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 [MyFunctionEmptyProperties] is invalid. Properties of a resource must be an object. 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 [MyFunctionNonDictProperties] is invalid. Properties of a resource must be an object. Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; 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; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string." } From f711d0f2c2ba09730cb33832dd16cbaa375eff55 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 17:04:03 -0800 Subject: [PATCH 22/25] address feedback --- samtranslator/model/__init__.py | 2 +- samtranslator/model/eventsources/push.py | 4 +- .../schema/aws_serverless_connector.py | 5 +- samtranslator/translator/translator.py | 20 +-- samtranslator/translator/verify_logical_id.py | 2 +- ...edded_connectors_depends_on_connector.yaml | 28 ++++ ...edded_connectors_depends_on_connector.json | 132 ++++++++++++++++++ ...edded_connectors_depends_on_connector.json | 132 ++++++++++++++++++ ...edded_connectors_depends_on_connector.json | 132 ++++++++++++++++++ 9 files changed, 443 insertions(+), 14 deletions(-) create mode 100644 tests/translator/input/embedded_connectors_depends_on_connector.yaml create mode 100644 tests/translator/output/aws-cn/embedded_connectors_depends_on_connector.json create mode 100644 tests/translator/output/aws-us-gov/embedded_connectors_depends_on_connector.json create mode 100644 tests/translator/output/embedded_connectors_depends_on_connector.json diff --git a/samtranslator/model/__init__.py b/samtranslator/model/__init__.py index 8f2169304..12a387870 100644 --- a/samtranslator/model/__init__.py +++ b/samtranslator/model/__init__.py @@ -147,7 +147,7 @@ def get_pass_through_attributes(cls) -> Tuple[str, ...]: return tuple(cls._pass_through_attributes) @classmethod - def from_dict(cls, logical_id, resource_dict, relative_id=None, sam_plugins=None): # type: ignore[no-untyped-def] + def from_dict(cls, logical_id: str, resource_dict: Dict[str, Any], relative_id: Optional[str] = None, sam_plugins=None) -> "Resource": # type: ignore[no-untyped-def] """Constructs a Resource object with the given logical id, based on the given resource dict. The resource dict is the value associated with the logical id in a CloudFormation template's Resources section, and takes the following format. :: diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index a611f49f3..c80a48ac7 100644 --- a/samtranslator/model/eventsources/push.py +++ b/samtranslator/model/eventsources/push.py @@ -362,7 +362,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] # The de-dupe happens inside `samtranslator.translator.Translator.translate` method when merging results of # to_cloudformation() to output template. self._inject_notification_configuration(function, bucket, bucket_id) # type: ignore[no-untyped-call] - resources.append(S3Bucket.from_dict(bucket_id, bucket)) # type: ignore[no-untyped-call] + resources.append(S3Bucket.from_dict(bucket_id, bucket)) return resources @@ -1142,7 +1142,7 @@ def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def] resources.append(lambda_permission) self._inject_lambda_config(function, userpool) # type: ignore[no-untyped-call] - resources.append(CognitoUserPool.from_dict(userpool_id, userpool)) # type: ignore[no-untyped-call] + resources.append(CognitoUserPool.from_dict(userpool_id, userpool)) return resources def _inject_lambda_config(self, function, userpool): # type: ignore[no-untyped-def] diff --git a/samtranslator/schema/aws_serverless_connector.py b/samtranslator/schema/aws_serverless_connector.py index 8527cd6f2..58ae339b8 100644 --- a/samtranslator/schema/aws_serverless_connector.py +++ b/samtranslator/schema/aws_serverless_connector.py @@ -6,6 +6,7 @@ resourcereference = get_prop("sam-property-connector-resourcereference") properties = get_prop("sam-resource-connector") +Permissions_type = List[Literal["Read", "Write"]] class ResourceReference(BaseModel): @@ -22,7 +23,7 @@ class ResourceReference(BaseModel): class Properties(BaseModel): Source: ResourceReference = properties("Source") Destination: ResourceReference = properties("Destination") - Permissions: List[Literal["Read", "Write"]] = properties("Permissions") + Permissions: Permissions_type = properties("Permissions") class Resource(BaseModel): @@ -37,7 +38,7 @@ class SourceReference(BaseModel): class EmbeddedConnectorProperties(BaseModel): SourceReference: Optional[SourceReference] # TODO: add docs for SourceReference Destination: ResourceReference = properties("Destination") - Permissions: List[Literal["Read", "Write"]] = properties("Permissions") + Permissions: Permissions_type = properties("Permissions") class EmbeddedConnector(BaseModel): diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 6c3cd2ffc..3215796f1 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -34,6 +34,7 @@ from samtranslator.model.eventsources.push import Api from samtranslator.model.sam_resources import SamConnector from samtranslator.validator.value_validator import sam_expect +from samtranslator.model import Resource class Translator: @@ -130,7 +131,8 @@ def translate( # replaces Connectors attributes with serverless Connector resources resources = sam_template.get("Resources", {}) embedded_connectors = self._get_embedded_connectors(resources) - self._update_resources(resources, embedded_connectors) + connector_resources = self._update_resources(embedded_connectors) + resources.update(connector_resources) self._delete_connectors_attribute(resources) template = copy.deepcopy(sam_template) @@ -277,18 +279,20 @@ def _get_resources_to_iterate( return functions + statemachines + apis + others + connectors @staticmethod - def _update_resources(resources: Dict[str, Any], connectors_list: List[SamConnector]) -> None: + def _update_resources(connectors_list: List[Resource]) -> Dict[str, Any]: + connector_resources = {} for connector in connectors_list: - resources.update(connector.to_dict()) + connector_resources.update(connector.to_dict()) + return connector_resources @staticmethod def _delete_connectors_attribute(resources: Dict[str, Any]) -> None: - for source_logical_id, resource in resources.items(): + for resource in resources.values(): if "Connectors" not in resource: continue - del resources[source_logical_id]["Connectors"] + del resource["Connectors"] - def _get_embedded_connectors(self, resources: Dict[str, Any]) -> List[SamConnector]: + def _get_embedded_connectors(self, resources: Dict[str, Any]) -> List[Resource]: """ Loops through the SAM Template resources to find any connectors that have been attached to the resources. Converts those attached connectors into Connector resources and returns a list of them @@ -339,7 +343,7 @@ def _get_embedded_connectors(self, resources: Dict[str, Any]) -> List[SamConnect def _get_generated_connector( self, source_logical_id: str, connector_logical_id: str, connector_dict: Dict[str, Any] - ) -> Any: + ) -> Resource: """ Generates the connector resource from the embedded connector @@ -369,7 +373,7 @@ def _get_generated_connector( properties["Source"].update(properties["SourceReference"]) del properties["SourceReference"] - return SamConnector.from_dict(connector_logical_id, connector) # type: ignore[no-untyped-call] + return SamConnector.from_dict(connector_logical_id, connector) def prepare_plugins(plugins: List[Any], parameters: Optional[Dict[str, Any]] = None) -> SamPlugins: diff --git a/samtranslator/translator/verify_logical_id.py b/samtranslator/translator/verify_logical_id.py index 99081b987..fb4c488a0 100644 --- a/samtranslator/translator/verify_logical_id.py +++ b/samtranslator/translator/verify_logical_id.py @@ -1,4 +1,4 @@ -from ..model import Resource +from samtranslator.model import Resource from typing import Dict, Any do_not_verify = { diff --git a/tests/translator/input/embedded_connectors_depends_on_connector.yaml b/tests/translator/input/embedded_connectors_depends_on_connector.yaml new file mode 100644 index 000000000..a38b9b0a0 --- /dev/null +++ b/tests/translator/input/embedded_connectors_depends_on_connector.yaml @@ -0,0 +1,28 @@ +Resources: + MyFunction: + Type: AWS::Serverless::Function + Properties: + Runtime: nodejs16.x + Handler: index.handler + InlineCode: | + exports.handler = async (event) => { + console.log(event); + }; + + MyQueue: + Type: AWS::SQS::Queue + Connectors: + MyConnector: + Properties: + Destination: + Id: MyFunction + Permissions: + - Read + - Write + + MyEventSourceMapping: + DependsOn: MyQueueMyConnector + Type: AWS::Lambda::EventSourceMapping + Properties: + FunctionName: !Ref MyFunction + EventSourceArn: !GetAtt MyQueue.Arn diff --git a/tests/translator/output/aws-cn/embedded_connectors_depends_on_connector.json b/tests/translator/output/aws-cn/embedded_connectors_depends_on_connector.json new file mode 100644 index 000000000..ae0f6b626 --- /dev/null +++ b/tests/translator/output/aws-cn/embedded_connectors_depends_on_connector.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyEventSourceMapping": { + "DependsOn": [ + "MyQueueMyConnectorPolicy" + ], + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "MyFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(event);\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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueueMyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyQueueMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/aws-us-gov/embedded_connectors_depends_on_connector.json b/tests/translator/output/aws-us-gov/embedded_connectors_depends_on_connector.json new file mode 100644 index 000000000..e91921ac3 --- /dev/null +++ b/tests/translator/output/aws-us-gov/embedded_connectors_depends_on_connector.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyEventSourceMapping": { + "DependsOn": [ + "MyQueueMyConnectorPolicy" + ], + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "MyFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(event);\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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueueMyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyQueueMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} diff --git a/tests/translator/output/embedded_connectors_depends_on_connector.json b/tests/translator/output/embedded_connectors_depends_on_connector.json new file mode 100644 index 000000000..9377c6251 --- /dev/null +++ b/tests/translator/output/embedded_connectors_depends_on_connector.json @@ -0,0 +1,132 @@ +{ + "Resources": { + "MyEventSourceMapping": { + "DependsOn": [ + "MyQueueMyConnectorPolicy" + ], + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + }, + "FunctionName": { + "Ref": "MyFunction" + } + }, + "Type": "AWS::Lambda::EventSourceMapping" + }, + "MyFunction": { + "Properties": { + "Code": { + "ZipFile": "exports.handler = async (event) => {\n console.log(event);\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" + }, + "MyQueue": { + "Type": "AWS::SQS::Queue" + }, + "MyQueueMyConnectorPolicy": { + "Metadata": { + "aws:sam:connectors": { + "MyQueueMyConnector": { + "Destination": { + "Type": "AWS::Serverless::Function" + }, + "Source": { + "Type": "AWS::SQS::Queue" + } + } + } + }, + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "sqs:DeleteMessage" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + }, + { + "Action": [ + "sqs:ReceiveMessage", + "sqs:GetQueueAttributes" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::GetAtt": [ + "MyQueue", + "Arn" + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "Roles": [ + { + "Ref": "MyFunctionRole" + } + ] + }, + "Type": "AWS::IAM::ManagedPolicy" + } + } +} From e92d6250a4f6c4b548dc2244e768c45a8ba99ec8 Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 17:11:48 -0800 Subject: [PATCH 23/25] address feedback --- samtranslator/schema/aws_serverless_connector.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/samtranslator/schema/aws_serverless_connector.py b/samtranslator/schema/aws_serverless_connector.py index 58ae339b8..fbefc420c 100644 --- a/samtranslator/schema/aws_serverless_connector.py +++ b/samtranslator/schema/aws_serverless_connector.py @@ -6,7 +6,8 @@ resourcereference = get_prop("sam-property-connector-resourcereference") properties = get_prop("sam-resource-connector") -Permissions_type = List[Literal["Read", "Write"]] + +PermissionsType = List[Literal["Read", "Write"]] class ResourceReference(BaseModel): @@ -23,7 +24,7 @@ class ResourceReference(BaseModel): class Properties(BaseModel): Source: ResourceReference = properties("Source") Destination: ResourceReference = properties("Destination") - Permissions: Permissions_type = properties("Permissions") + Permissions: PermissionsType = properties("Permissions") class Resource(BaseModel): @@ -38,7 +39,7 @@ class SourceReference(BaseModel): class EmbeddedConnectorProperties(BaseModel): SourceReference: Optional[SourceReference] # TODO: add docs for SourceReference Destination: ResourceReference = properties("Destination") - Permissions: Permissions_type = properties("Permissions") + Permissions: PermissionsType = properties("Permissions") class EmbeddedConnector(BaseModel): From 802f4a20866f2d4dedf2a962c7f0a48fe667208a Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 17:20:38 -0800 Subject: [PATCH 24/25] address feedback --- samtranslator/model/connector/connector.py | 1 + samtranslator/schema/aws_serverless_connector.py | 1 + 2 files changed, 2 insertions(+) diff --git a/samtranslator/model/connector/connector.py b/samtranslator/model/connector/connector.py index ee603af7a..fcca66ce8 100644 --- a/samtranslator/model/connector/connector.py +++ b/samtranslator/model/connector/connector.py @@ -82,6 +82,7 @@ def get_event_source_mappings( def _is_valid_resource_reference(obj: Dict[str, Any]) -> bool: id_provided = "Id" in obj + # Every property in ResourceReference can be implied using 'Id', except for 'Qualifier', so users should be able to combine 'Id' and 'Qualifier' non_id_provided = len([k for k in obj.keys() if k not in ["Id", "Qualifier"]]) > 0 # Must provide Id (with optional Qualifier) or a supported combination of other properties. return id_provided != non_id_provided diff --git a/samtranslator/schema/aws_serverless_connector.py b/samtranslator/schema/aws_serverless_connector.py index fbefc420c..7aa4df9b6 100644 --- a/samtranslator/schema/aws_serverless_connector.py +++ b/samtranslator/schema/aws_serverless_connector.py @@ -42,6 +42,7 @@ class EmbeddedConnectorProperties(BaseModel): Permissions: PermissionsType = properties("Permissions") +# TODO make connectors a part of all CFN Resources class EmbeddedConnector(BaseModel): Properties: EmbeddedConnectorProperties DependsOn: Optional[PassThroughProp] From f4055a6d2653900a5b2a8d99e712c819b23a3a6c Mon Sep 17 00:00:00 2001 From: Aayush Thapa Date: Mon, 23 Jan 2023 18:04:07 -0800 Subject: [PATCH 25/25] additional tests --- samtranslator/translator/translator.py | 4 ++- .../input/error_embedded_connectors.yaml | 29 +++++++++++++++++++ .../output/error_embedded_connectors.json | 2 +- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/samtranslator/translator/translator.py b/samtranslator/translator/translator.py index 3215796f1..58137f157 100644 --- a/samtranslator/translator/translator.py +++ b/samtranslator/translator/translator.py @@ -368,7 +368,9 @@ def _get_generated_connector( # can't allow user to override the Id using SourceReference if "Id" in properties["SourceReference"]: - raise InvalidResourceException(connector_logical_id, "Id shouldn't be defined in 'SourceReference'") + raise InvalidResourceException( + connector_logical_id, "'Id' shouldn't be defined in 'SourceReference'." + ) properties["Source"].update(properties["SourceReference"]) del properties["SourceReference"] diff --git a/tests/translator/input/error_embedded_connectors.yaml b/tests/translator/input/error_embedded_connectors.yaml index 7bf237301..b53d04035 100644 --- a/tests/translator/input/error_embedded_connectors.yaml +++ b/tests/translator/input/error_embedded_connectors.yaml @@ -71,6 +71,14 @@ Resources: Id: MyQueue Permissions: - Write + TestSourceReferenceId: + Properties: + SourceReference: + Id: foo + Destination: + Id: MyQueue + Permissions: + - Write Properties: Runtime: python3.9 InlineCode: foo @@ -140,3 +148,24 @@ Resources: Permissions: - Write Type: AWS::SQS::Queue + + DuplicateTest: + Type: AWS::Serverless::Function + Connectors: + DuplicateId: + Properties: + Destination: + Id: MyFunction + Permissions: + - Write + Properties: + Runtime: python3.9 + InlineCode: foo + Handler: foo + + DuplicateTestDuplicateId: + 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 e66cff0d6..8b6fee13a 100644 --- a/tests/translator/output/error_embedded_connectors.json +++ b/tests/translator/output/error_embedded_connectors.json @@ -1,3 +1,3 @@ { - "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 20. 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 [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 [MyFunctionEmptyProperties] is invalid. Properties of a resource must be an object. 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 [MyFunctionNonDictProperties] is invalid. Properties of a resource must be an object. Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; 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; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string." + "errorMessage": "Invalid Serverless Application Specification document. Number of errors found: 22. 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 [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 [MyFunctionEmptyProperties] is invalid. Properties of a resource must be an object. 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 [MyFunctionNonDictProperties] is invalid. Properties of a resource must be an object. Resource with id [MyFunctionNonExistentId] is invalid. Unable to find resource with logical ID 'ThisDoesntExist'. Resource with id [MyFunctionTestSourceReferenceId] is invalid. 'Id' shouldn't be defined in 'SourceReference'. Resource with id [MyFunctionUnsupportedAccessCategory] is invalid. Unsupported 'Permissions' provided; 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; valid combinations are: Read + Write. Resource with id [MyResourceWithoutTypeResourceWithoutType] is invalid. 'Type' is missing or not a string." }